60 votes

Trucs et astuces rsync préférés

Plus j'utilise rsync plus je réalise que c'est un couteau suisse du transfert de fichiers. Il y a tellement d'options. J'ai récemment découvert que vous pouvez aller --remove-source-files et il supprime un fichier de la source lorsqu'il a été copié, ce qui en fait un peu plus un déplacement, plutôt qu'un programme de copie :)

Quels sont vos petits trucs et astuces rsync préférés ?

22voto

David Spillett Points 22424

使用方法 --link-dest pour créer des sauvegardes basées sur des instantanés peu encombrants, où vous semblez avoir plusieurs copies complètes des données sauvegardées (une pour chaque exécution de sauvegarde), mais les fichiers qui ne changent pas entre les exécutions sont liés durablement au lieu de créer de nouvelles copies, ce qui économise de l'espace.

(en fait, j'utilise toujours le rysnc -suivi par- cp -al qui permet d'obtenir le même résultat, voir http://www.mikerubel.org/computers/rsync_snapshots/ pour une présentation ancienne, mais toujours très bonne, de ces deux techniques et des questions connexes)

L'inconvénient majeur de cette technique est que si un fichier est corrompu à cause d'une erreur de disque, il est tout aussi corrompu dans tous les instantanés qui sont liés à ce fichier, mais j'ai aussi des sauvegardes hors ligne qui protègent contre cela dans une certaine mesure. L'autre chose à vérifier est que votre système de fichiers possède suffisamment d'inodes, sinon vous en manquerez avant de manquer d'espace disque (bien que je n'aie jamais eu de problème avec les valeurs par défaut d'ext2/3).

N'oubliez pas non plus le très très utile --dry-run pour un peu de paranoïa saine, surtout lorsque vous utilisez la --delete* options.

22voto

Shivasubramanian A Points 1110

Essayez d'utiliser la version 3 de rsync si vous devez synchroniser de nombreux fichiers ! La version 3 construit sa liste de fichiers de manière incrémentielle et est beaucoup plus rapide et utilise moins de mémoire que la version 2.

En fonction de votre plateforme, cela peut faire une grande différence. Sur OSX, la version 2.6.3 prendrait plus d'une heure ou se planterait en essayant de construire un index de 5 millions de fichiers alors que la version 3.0.2 que j'ai compilée a commencé à copier tout de suite.

16voto

Bob Points 940

Si vous devez mettre à jour un site web avec des fichiers volumineux sur une liaison lente, vous pouvez transférer les petits fichiers de cette manière :

rsync -a --max-size=100K /var/www/ là:/var/www/

puis faites de même pour les gros fichiers :

rsync -a --min-size=100K --bwlimit=100 /var/www/ là:/var/www/

rsync dispose de nombreuses options pratiques pour les sites Web. Malheureusement, il n'a pas de moyen intégré de détecter les mises à jour simultanées, vous devez donc ajouter une logique à cron scripts pour éviter les écritures superposées de fichiers énormes.

13voto

jftuga Points 5522
--time-limit

Lorsque cette option est utilisée, rsync s'arrêtera après T minutes et quittera. Je pense que cette option est utile pour rsynchroniser une grande quantité de de données pendant la nuit (heures creuses), et s'arrêter ensuite quand il est l'heure où les gens commencent à utiliser le réseau, pendant la journée (heures de pointe).

--stop-at=y-m-dTh:m

Cette option vous permet de spécifier à quel moment arrêter rsync.

Batch Mode

Le mode batch peut être utilisé pour appliquer le même ensemble de mises à jour à de nombreux systèmes identiques.

12voto

TCampbell Points 2004

J'utilise l'option --existing lorsque j'essaie de garder un petit sous-ensemble de fichiers d'un répertoire synchronisé à un autre emplacement.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X