Comment rsync un fichier volumineux, avec aussi peu de frais de CPU et de bande passante que possible?

J'ai un fichier de 500 Go que j'ai prévu de sauvegarder à distance. Le fichier change souvent. Je vais le faire passer d'un ordinateur de bureau à un serveur. Les deux peuvent exécuter le client ou le serveur rsync.

Quelle est la bonne commande pour cela? Ceux que j'ai essayé ont été pris pour toujours ou tout simplement agi.

Exemple et résultats:

rsync -cv --partial --inplace --no-whole-file /desktop/file1 myserver.com::module/file1 

Cela semble fonctionner, mais seulement si je le fais deux fois (?!). Aussi, lent.

Est-ce que la commande ci-dessus effectue la somme de contrôle sur les deux ordinateurs, ou seulement sur l'envoi? Est-ce correct, sinon?

Ce ne sera jamais rapide, car rsync devra lire / contrôler le fichier entier, et lire 500 Go va prendre beaucoup de temps, sauf si vous l'avez stocké sur les SSD ou quelque chose.

Essayez rsync -vhz --partial --inplace <file/server stuff> .

-c signifie qu'il vérifie l'intégralité du fichier AVANT de faire des transferts, plutôt que d'utiliser l'horodatage pour voir s'il est modifié, ce qui signifie lire l'intégralité du fichier deux fois. Si l'horodatage ne change pas (il devrait), alors vous pouvez simplement touch le fichier avant d'exécuter rsync.

Si ce n'est pas scénarisé, vous pouvez ajouter – --progress afin que vous puissiez voir comment il fonctionne.

Bien que ce ne soit pas rsync, en fonction de ce que vous essayez de faire, cela pourrait mieux fonctionner. Je faisais une tâche de sauvegarde similaire et c'était certainement plus rapide.

Utilisez netcat pour créer un tube de goulot d'une machine à l'autre.

Sur votre machine source:

tar -cpv --atime-preserve=system . | nc -q 10 -l -p 45454

Vous créez une tarball conserve les autorisations et l'heure, puis la transforme en netcat sur le port 45454

Sur votre machine de sauvegarde

nc -w 10 XXXX 45454 | tar -xpv

XXXX = adresse IP locale de votre machine source.

Pour moi, cela a bien fonctionné. Il a fonctionné à 25-30 Mo / s par LAN câblé par opposition à 2-3 Mo / s avec rsync. L'inconvénient est: il ne se synchronise pas, il fait simplement une copie de ce qui se trouve sur votre source. Pour une sauvegarde comme vous décrivez cependant – un fichier de 500 Go – cela pourrait très bien fonctionner.

Vous devrez peut-être le faire en tant que root pour éviter les problèmes d'autorisations, ou vous pouvez avoir de la chance.

FWIW, j'ai d'abord appris cela ici: http://www.screenage.de/blog/2007/12/30/using-netcat-and-tar-for-network-file-transfer/