rsync pour copier des fichiers qui ont changé

42

Je dois copier quotidiennement des fichiers d'un répertoire particulier vers un emplacement différent. Je veux copier les modifications uniquement, afin de planifier l'utilisation rsync. Ces fichiers suivent la convention de nommage suivantemysql-bin.*

Ma commande ressemble à ce qui suit

# rsync --update -raz --progress /var/lib/mysql/mysql-bin.*  /dbdata/binarylog/

Ma confusion vient du fait que je prévois de ne copier que quelques fichiers d'un répertoire plutôt que de tout le contenu du répertoire, j'avais l'habitude * de copier uniquement les fichiers requis. Je veux juste savoir si ma commande est correcte pour obtenir le même résultat.

Zama Ques
la source

Réponses:

51

Ça a l'air bien. Pourquoi utilisez-vous l' -zoption pour compresser le transfert? Cette option est normalement utilisée lorsque vous copiez sur un serveur rsync distant sur un réseau lent. Dans ce cas, les fichiers seront compressés et décompressés instantanément, ce qui n'augmentera votre utilisation de la CPU sans aucun avantage.

L' -aoption (archive) implique l'option -r(récursive), il n'est donc pas nécessaire de le spécifier explicitement sur la ligne de commande.

Vous pouvez utiliser l' -noption (ou --dry-run) pour vérifier votre commande. Il montrera ce qu'il ferait sans copier réellement aucun fichier. Pour voir réellement ce qui se passe, vous devez également utiliser l' -voption (ou --verbose).

Par conséquent:

rsync -uanv /var/lib/mysql/mysql-bin.*  /dbdata/binarylog/

et une fois que vous êtes satisfait que les fichiers sont listés correctement sur le dry-run, supprimez le nv:

rsync -ua --progress /var/lib/mysql/mysql-bin.*  /dbdata/binarylog/
garethTheRed
la source
3
Comme il est dit dans la page de manuel, le --dry-rundrapeau est le plus couramment utilisé conjointement avec le --verbosedrapeau
Benjamin Leinweber