Plus j'utilise, rsync
plus je réalise que c'est un couteau suisse de transfert de fichier. Il y a tellement d'options. J'ai récemment découvert que vous pouvez y aller --remove-source-files
et que cela supprimera un fichier de la source quand il aura été copié, ce qui en fait un peu plus un coup, plutôt qu'un programme de copie. :)
Quels sont vos trucs et astuces préférés de rsync?
--delete-before
par exemple), l'ancien comportement de "liste de construction en premier" est utilisé, car il est nécessaire pour que ces options fonctionnent correctement. Par conséquent, si vous ne voyez pas ce comportement, vérifiez si la les autres options que vous utilisez sont connues pour empêcher que cela soit possible. Cela peut être utile si vous utilisez rsync de manière interactive sur une grande arborescence et souhaitez forcer l'analyse initiale afin que la sortie--progress
soit précise (le nombre d'objets à comparer ne va jamais augmenter, aucun nouvel objet ne sera trouvé après l'analyse initiale. ).Utilisation
--link-dest
pour créer des sauvegardes basées sur des instantanés peu encombrantes, dans lesquelles 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 par un lien physique au lieu de créer de nouvelles copies pour économiser de l’espace.(en fait, j'utilise toujours la méthode
rysnc
-followed-by-par-cp -al
qui permet d'atteindre le même objectif, voir http://www.mikerubel.org/computers/rsync_snapshots/ pour une description ancienne, mais néanmoins très bonne, des deux techniques et questions connexes)Le seul inconvénient majeur de cette technique est que si un fichier est corrompu en raison d’une erreur de disque, il est tout aussi corrompu dans tous les instantanés liés à ce fichier, mais j’ai aussi des sauvegardes hors connexion qui permettraient de s’en protéger convenablement. L'autre chose à surveiller est que votre système de fichiers a suffisamment d'inodes ou vous en manquerez avant que vous ne manquiez réellement d'espace disque (bien que je n'ai jamais eu de problème avec les valeurs par défaut ext2 / 3).
Aussi, ne jamais oublier le très très utile
--dry-run
pour un peu de paranoïa en bonne santé, surtout lorsque vous utilisez les--delete*
options.la source
Si vous devez mettre à jour un site Web avec des fichiers volumineux via un lien lent, vous pouvez transférer les petits fichiers de la manière suivante:
rsync -a --max-size = 100K / var / www / il: / var / www /
alors faites ceci pour les gros fichiers:
rsync -a --min-size = 100K --bwlimit = 100 / var / www / il: / var / www /
rsync propose de nombreuses options utiles pour les sites Web. Malheureusement, il ne dispose pas d'un moyen intégré de détection des mises à jour simultanées. Vous devez donc ajouter une logique aux scripts cron pour éviter le chevauchement des écritures de fichiers volumineux.
la source
J'utilise l'option --existing lorsque j'essaie de garder un petit sous-ensemble de fichiers d'un répertoire synchronisé vers un autre emplacement.
la source
--rsh
est à moi.Je l'ai utilisé pour changer le chiffre sur ssh en quelque chose de plus rapide (
--rsh="ssh -c arcfour"
) et pour configurer une chaîne dessh
s (il est recommandé de l'utiliser avecssh-agent
) pour synchroniser des fichiers entre hôtes ne pouvant pas parler directement. (rsync -av --rsh="ssh -TA userA@hostA ssh -TA -l userB" /tmp/foobar/ hostB:/tmp/foobar/
)la source
Lorsque cette option est utilisée, rsync s’arrête après T minutes et quitte. Je pense que cette option est utile lorsque vous synchronisez une grande quantité de données pendant la nuit (heures non pleines), puis que vous vous arrêtez quand il est temps que les gens commencent à utiliser le réseau, pendant la journée (heures pleines).
Cette option vous permet de spécifier à quel moment arrêter rsync.
Le mode batch peut être utilisé pour appliquer le même ensemble de mises à jour à plusieurs systèmes identiques.
la source
at
pour tuer le processus?Si vous vous demandez où en est un rsync lent et que vous n'avez pas utilisé -v pour répertorier les fichiers au fur et à mesure de leur transfert, vous pouvez savoir quels fichiers il a ouverts:
sur un système qui a / proc
Par exemple, rsync a été suspendu pour moi tout à l'heure, même s'il semblait qu'il restait beaucoup d'espace sur le système distant. Cette astuce m'a aidé à trouver le fichier d'une taille inattendue dont je ne me souvenais pas, qui ne tiendrait pas à l'autre bout.
Cela m'a également révélé des informations un peu plus intéressantes - l'autre extrémité a apparemment abandonné, car il y avait aussi un lien de socket cassé:
la source
--archive
est un choix standard (mais pas celui par défaut) pour les travaux de type sauvegarde, ce qui permet de s'assurer que la plupart des métadonnées des fichiers source (autorisations, propriété, etc.) sont copiées.Cependant, si vous ne souhaitez pas l'utiliser, vous devrez souvent inclure
--times
, ce qui copiera les heures de modification des fichiers. Cela rend la prochaine rsync qui fonctionne ( en supposant que vous le faites à plusieurs reprises) beaucoup plus vite, comme rsync compare les temps de modification et saute le fichier si elle est inchangée. Étonnamment (du moins pour moi), cette option n'est pas la valeur par défaut.la source
Celui que j’utilise le plus est bien
--exclude-from
ce qui vous permet de spécifier un fichier contenant des éléments à exclure.Je trouve également
--chmod
très utile, car cela vous permet de vous assurer que les autorisations se retrouvent dans un état souhaitable, même si votre source est gâchée.la source
--backup-dir =
date +%Y.%m.%d
--delete Nous supprimons mais faisons une copie ... juste au cas oùla source
Le mien est
--inplace
. Fonctionne à merveille lorsque le serveur de sauvegarde exécute ZFS ou btrfs et que vous effectuez des instantanés natifs.la source
Bien sûr, il y a aussi le fait de
--delete
supprimer des éléments de la cible qui ne peuvent pas être trouvés dans le source.la source
cwrsync - Rsync pour Windows http://www.itefix.no/i2/node/10650
Cette version inclut OpenSSH afin que vous puissiez transférer des fichiers sur un canal sécurisé.
la source
En cas d'interruptions
Limiter la bande passante - idéal pour copier des fichiers volumineux, des répertoires
la source
bwlimit
? bits par seconde, octets par seconde?Si vous avez configuré rsync en tant que démon sur le serveur, vous pouvez simplement parcourir les modules partagés comme toute autre liste de répertoires. Ensuite, vous pouvez voir quels chemins sont disponibles et ce qui ne l’est pas.
la source
lorsque j'utilise GlusterFs, nous avons un goulot d'étranglement avec des fichiers T de taille nulle. Pour la synchronisation entre briques écrasées ou répliques, nous devons utiliser
--min-size=1
pour ne pas synchroniser les fichiers vides du serveur écrasé.la source