Comment synchroniser un lecteur réseau et un lecteur externe (Ubuntu & OS X)?

À la lumière d'une défaillance matérielle récente, j'ai décidé qu'il était time d'être un peu less laxiste en ce qui concerne les sauvegardes.

Ce que j'ai:

  • Un server / NAS Ubuntu 10.10 '
  • Un MacBook 5,2
  • Un disque dur externe WD

Le server et le MacBook sont connectés en permanence par Ethernet.

J'ai un directory sur le server que je voudrais garder synchronisé avec le disque externe que je twig de time en time. Le système de files Ubuntu est ext4 et le lecteur externe est HFS + (Mac OS Extended [Journalisé]). Il convient de noter que ce n'est pas sensible à la casse. Je ne sais pas si c'est un problème. Si c'est le cas, je peux reformater le disque dur externe pour qu'il le soit.

Il convient également de noter que OS X 10.6 est livré avec un vieux rsync , ver. 2.6.9. Je crois qu'il y a des problèmes avec cela concernant la gestion des fourchettes de ressources et d'autres choses.

Alors, quelle est la meilleure façon de procéder?

  • Dois-je faire rsyncs à travers le réseau? Si tel est le cas, des conseils sur la façon d'y parvenir à l'aide de l'interface de command line seraient appréciés (j'ai lu plusieurs fois la page de manuel de rsync et je n'arrive pas à la comprendre).
  • Ou devrais-je installer un module kernel pour que je puisse simplement twigr le lecteur formaté HFS + sur le server et qu'il soit lu et inscriptible sous Linux? Encore une fois, certains conseils CLI rsync serait génial.
  • Ou devrais-je faire autre chose entièrement?

À votre santé.

Oui, rsync est la réponse.

Si le lecteur est branché localement, il sera beaucoup plus rapide que le réseau, mais dans le but de faire des sauvegardes, je reorderais en fait de laisser le matériel en place. Faites la chose la plus lente et transférez-la sur le réseau … à distance de la télécommand si besoin, afin de ne rien casser en la touchant.

Il y a quatre parties principales à votre command rsync. Tout d'abord, le mécanisme de transport. Pour les transferts locaux à locaux, cela est ignoré. Si l'un des côtés est distant, vous spécifiez généralement un agent de transfert comme rsync -e ssh pour utiliser le transport SSH. Après cela, vous spécifiez une source pour vos files (finissez avec une barre oblique si vous donnez un directory!) Puis une cible (finissez encore par un slash de synchronisation!). Nous avons donc rsync -e ssh machine1:/source/folder/ machine2:/source/folder/ jusqu'à présent. Ensuite, vous pouvez append des options comme ignorer en utilisant --exclude PATTERN , sur la compression de fil en utilisant -z , peut-être l'option -a archive pour gérer les trucs récursifs, les permissions correspondantes et ainsi, -v ou --progress si vous voulez voir les détails ou les progrès au fur et à mesure.

Échantillon:

 rsync -avze ssh ubuntu:/path/to/source/files/ osxhost:/path/to/backup/drive/ 

La command de base que j'utilise est rsync -vaP user@host1:/files/ user@host2:/files/ . J'utilise occasionnellement --exclude-from , --delete , --delete-excluded .

Un wrapper agréable autour de rsync à des fins de sauvegarde est dirvish .