{{tag>app rsync sysadmin linux backup sauvegarde}} ====== rsync ====== Outil de copie incrémentielle de fichiers et dossiers. Rsync ne copie que la différence entre la source et la destination. La copie peut s'effectuer entre deux dossier locaux ou à distance avec SSH. incrémentielle = copie les modification depuis la sauvegarde précédente. Les principales options ''%%-Haurov%%'' : * **-H** Préserve les liens en dur. * **-a** Mode archivage. * **-u** Mettre à jour les fichiers modifiés par copie complète. * **-r** Mode récursif. * **-o** Préservation du propriétaire (owner). * **-v** Verbeux. Autres options communes * **-t** Conserve les dates de modification. * **-g** Conserve les groupes. * **-l** Copie les liens symboliques comme des liens symboliques * **-D** préserve les fichiers périphérique L'option **-a** (all) est équivalente à **-rlptgoD** Pour supprimer sur l'arborescence destination les fichiers n'existant plus sur l'arborescence source il faut ajouter l'option **%%--delete%%**. Stocker les fichiers effacés de la source dans un dossier différent pour éviter la perte de données en cas de suppression accidentelle sur la source %%--backup --backup-dir=/path/for/files/deleted%% ===== Exclure des dossiers ===== --exclude=/path/to/cache ==== Exclure grâce aux filtres ==== Certains fichiers ou dossiers sont inutiles pour la sauvegarde les filtres permettent de les exclure. --filter "- .thumbnails/" --filter "- .Trash/" --filter "- *.tmp" --filter "- *.iso" --filter "- lost+found/" **%%--force%%** pour forcer la suppression des répertoires même non vide. Pour afficher la progression du transfert **%%--progress%%** ===== rsync + ssh ===== rsync /source user@server:/path/to/backup Pour spécifier une clé privée pour l'authentification ssh -e "ssh -i ~/.ssh/id_dsa" Particulièrement utile pour automatiser les sauvegardes via un cron (le mot passe utilisateur n'est plus demandé). ===== Exemples ===== Créer une copie locale (miroir) d'un dossier : ici on sauvegarde un dossier sur un disque externe. rsync -Hauro --progress /home/yoann/RetroPie /media/yoann/b3193ccf-02fe-4514-a124-6d2a61b68b1d/backups/ * Le dossier source ''/home/yoann/RetroPie'' est recréé dans la destination ''/media/yoann/b3193ccf-02fe-4514-a124-6d2a61b68b1d/backups/'' ; * Tout le contenu du dossier source ''/home/yoann/RetroPie'' est copié dans la destination. Après exécution de cette commande les dossiers ''/home/yoann/RetroPie'' et ''/media/yoann/external-disk/backups/Retropie'' sont identiques. Si le dossier source est modifié (ajout/suppression de fichiers) ré-exécuter la commande pour synchroniser les deux dossiers. rsync ne copie que la différence, les fichiers supplémentaires dans la destination peuvent être supprimés grâce à l'option %%--delete%% rsync -Hauro --delete --progress /home/yoann/RetroPie /media/yoann/b3193ccf-02fe-4514-a124-6d2a61b68b1d/backups/