www.RiffZone.net
code.RiffZone.net
login.RiffZone.net
Retour au Sommaire

Transférer salement un dossier entre deux serveurs avec rsync et sshpass

Pas de clé SSH, mais l'utilitaire sshpass, méthode donc à utiliser ponctuellement pour un besoin unique, quick & dirty. Commande lancée sur le serveur DESTINATION: CMD: sshpass -p MOT_DE_PASSE_SOURCE rsync -avzh UTILISATEUR_SOURCE@SOURCE.DOMAIN.TLD:/chemin/du/dossier/source/ /chemin/du/dossier/destination/ :CMD Là, c'est un simple transfert. Si on veut faire une synchro unidirectionnelle SOURCE > DESTINATION, rajouter le paramètre --delete, ce qui signifie que les fichiers non présents sur SOURCE mais présents sur DESTINATION seront supprimés de DESTINATION: CMD: sshpass -p MOT_DE_PASSE_SOURCE rsync -avzh UTILISATEUR_SOURCE@SOURCE.DOMAIN.TLD:/chemin/du/dossier/source/ /chemin/du/dossier/destination/ --delete :CMD Pour rappel, si on veut faire tourner ça en tâche de fond, sans sortie sur stdout ni stderr, on rajoute encore à la fin de la ligne de commande " > /dev/null 2>&1 &": CMD: sshpass -p MOT_DE_PASSE_SOURCE rsync -avzh UTILISATEUR_SOURCE@SOURCE.DOMAIN.TLD:/chemin/du/dossier/source/ /chemin/du/dossier/destination/ --delete > /dev/null 2>&1 & :CMD Un cran plus loin, une fois lancée la commande précédente, si on veut qu'elle continue à tourner toute seule même après déconnexion de notre session (volontairement ou accidentellement), lancer d'abord la commande jobs, qui liste comme son nom l'indique les tâches en cours: CMD: jobs :CMD Chaque élément de la liste commence par un identifiant numérique entre crochets, par exemple: OUTPUT: [1]+ Running sshpass -p MOT_DE_PASSE_SOURCE rsync -avzh .... --delete > /dev/null 2>&1 & :OUTPUT Il vous suffit d'exécuter la commande suivante, reprenant l'identifiant du job que l'on veut libérer, ici le "1": CMD: disown -h %1 :CMD Remplacez bien sûr le "1" par votre identifiant à vous.