Afficher/cacher Sommaire
lsyncd
sync {
default.rsync,
source="/media/yanplus/devel/ouestline/osm-new",
target="backupuser@193.70.43.101:/srv/map",
rsync = {
archive = false,
acls = false,
compress = true,
links = false,
owner = false,
perms = false,
verbose = true,
rsh = "/usr/bin/ssh -p 55027 -i /home/backupuser/.ssh/id_rsa -o StrictHostKeyChecking=no"
}
inotify
Installation
sudo apt update && sudo apt upgrade
sudo apt install inotify-tools
Batch pour boucle sur le dossier à synchroniser
/srv/file-sync.sh
#!/bin/bash
while true; do
inotifywait -r -e modify,attrib,close_write,move,create,delete /media/yanplus/devel/ouestline/osm-new
rsync -avz -e "/usr/bin/ssh -p 55027 -i /home/backupuser/.ssh/id_rsa -o StrictHostKeyChecking=no" /media/yanplus/devel/ouestline/osm-new/* backupuser@193.70.43.101:/srv/map
done
Service systemd sync.service
Créer un fichier appelé sync.service qui peut s’arrêter, démarrer et réinitialiser le script à la demande ou sur des événements spécifiques comme un démarrage du système dans le répertoire /etc/systemd/systemd/system/system/ avec le contenu suivant
/etc/systemd/system/sync.service
[Unit]
Description = SyncService
After = network.target
[Service]
PIDFile = /run/syncservice/syncservice.pid
User = root
Group = root
WorkingDirectory = /srv
ExecStartPre = /bin/mkdir /run/syncservice
ExecStartPre = /bin/chown -R root:root /run/syncservice
ExecStart = /bin/bash /srv/file-sync.sh
ExecReload = /bin/kill -s HUP $MAINPID
ExecStop = /bin/kill -s TERM $MAINPID
ExecStopPost = /bin/rm -rf /run/syncservice
PrivateTmp = true
[Install]
WantedBy = multi-user.target
Droits du fichier de service et recharger le démon systemd
chmod 755 /etc/systemd/system/sync.service
systemctl daemon-reload
Activer le service
systemctl enable sync.service
Démarrer le service
systemctl start sync.service