Rsync, la copie de fichier magique
Un man rsync
permet de tirer profit de la puissance de l'outil. Utilisable sur l'ordi (alternative à cp) et à distance.
La commande qui va bien :
rsync -Pha --delete-after source/ destination/
- -P : progression globale du transfert
- -h : human readeable, pour afficher des chiffres lisibles
- -a : archive mode. Equals -rlptgoD (no -H,-A,-X), donc récursif, copie les symlinks de la même façon, préserve les permissions, la date de modification, les groupes, les propriétaires et
--devices --specials
. C'est assez complet. - -s : empêche les interprétations de caractères dans les noms de fichiers sauf le joker *
- --delete-after : à la fin du transfert, supprime les fichiers dans le dossier de destination ne se trouvant pas dans le dossier source.
En ligne, ajouter -z pour comprimer les data. Le nom du serveur est suivi de deux points. Si l'hostname est entré dans .ssh/config
(plus simple pour gérer port et utilisateur) :
rsync -Phaz hostname:source/ destination/
Si une erreur du type IO error encountered -- skipping file deletion
apparait, c'est possiblement parce que rsync a rencontré des fichiers sur lesquels ils n'avait pas le droit d'agir ; du coup il s'arrête avant de détruire les fichiers disparus. Pour passer outre, ajouter --ignore-errors
:
rsync -Pha --delete-after --ignore-errors source/ destination/