Comment rsync
sait quels fichiers sont modifiés et qui ne sont pas? Est-ce que cela enregistre ses données n'importe où dans le fichier?
Parce que je veux faire des sauvegardes incrémentielles, mais cela transférera d'abord tous les fichiers.
Donc, ma principale question est la suivante: si je télécharge les fichiers initiaux via FTP mais non par rsync
. Will rsync
saute toujours ces fichiers existants ou tout téléchargera tout sur la première exécution.
RSYNC a un certain nombre de drapeaux qui contrôlent ce qu'il va regarder et ce qu'il va copier sur la destination. Le plus souvent, le drapeau "-a" est utilisé qui est le drapeau "archive", c'est probablement ce que vous voulez. Exécutez RSYNC avec les drapeaux "-AV" et faites-la faire une première exécution contre les données que vous souhaitez sauvegarder. La prochaine fois qu'il exécute, cela fera une somme de contrôle du fichier et ne copiez que sur les pièces modifiées sur les fichiers existants, copier de nouveaux fichiers sur et supprimer des fichiers qui ne sont plus là. Vérifiez la section "-A" Options sur:
http://linux.die.net/man/1/rsync
La première exécution sera intensifie de la bande passante, les points suivants seront probablement intensifs de processeur mais utiliseront peu de bande passante par rapport à la course initiale. Sauf si vous avez beaucoup de baratche sur votre jeu de données.
RSYNC ne foque pas comment vous avez obtenu les fichiers dans la source ou les répertoires de destination, il suffira de copier les modifications entre les deux, à moins que vous ajoutez des indicateurs à faire quelque chose de différent.
Si vous souhaitez enregistrer ce qui a été changé, vous pouvez utiliser l'option "-Log-File". Dans l'ensemble, quelque chose comme ça ressemble à ce que vous voulez:
rsync -av --log-file=/var/log/rsync.log -e "ssh -l backup-user" backup-user@source-machine::module /nas01/backups
rsync ne fait pas "incrémental", c'est plus comme "différentiel". Il ne transfère pas changements (qui assument une certaine connaissance d'une exécution préalable), il transfère différences (en comparant la source avec les fichiers cible)
une simplification du processus:
rSYNC ne consomme pas de données, il vérifie les horodatages de modification de fichier, puis le contenu. Si vous téléchargez d'abord par FTP, cela ira bien - RSYNC ne transmettra pas toutes les données, mais passera probablement à tout le contenu et réparera les horodatages. Mais il n'y aura plus de transfert énorme.
Si la vraie question est "Je veux faire des sauvegardes incrémentielles sur RSYNC", quelques options sont disponibles. J'utilise dirvish:
La restauration est facile car il vous donne des instantanés: il utilise des lignes hardlinks pour vous donner des instantanés complets tout en enregistrant de l'espace où un fichier est identique. En interne, il utilise l'option RSYNC'S --Link-Dest:
--link-dest=DIR hardlink to files in DIR when unchanged
Comme il utilise RSYNC, il enregistre également la bande passante réseau (et donc durée) où les changements sont très petits. Cela fonctionne également si vous goudron et Sneakernet a créé une image dirvish créée localement, si vous avez beaucoup de fichiers et un lien lent.