tisdag 10 april 2007

flytta data - unix style!

fick frågan idag från en kollega ang min pågående datamigrering hemma.
ska ju slänga ut min stora bullriga filserver och köra en mac mini med en 500GB lacie mini i mitt och helenas nya hem.
typ så här:



första tanken är ju givetvis att jacka in lacie-disken i filservern och bara kopiera över skiten. tanken som slår mig när jag ska koppla in disken i filservern (ubuntu linux på i386) är att: vafan, då måste jag ju formatera disken i FAT32 för att linux ska kunna skriva till den och macosx läsa. och FAT32 behöver man ju peta rätt ordentligt i sidan för att ens kunna formatera i över 137GB partitioner. jag har ju redan bloggat om hur mycket jag älskar HFS+ en gång, och eftersom disken ska sitta permanent i en mac så vill jag ju givetvis köra det.
enda lösningen som återstår blir att gå via min macbook pro.

att dra-och-släppa i finder och hoppas att allt kommer med och att inget skiter sig är inte ens ett alternativ. det är inte mycket bättre än i utforskaren (och något sämre än motsvarande utforskaren i windows vista faktiskt).

lösningen är givetvis solklar: att använda rsync

utdrag från man-sidan:

DESCRIPTION

rsync is a program that behaves in much the same way that rcp does, but has many more options and uses the rsync remote-update protocol to greatly speed up file transfers when the destination file is being updated.

The rsync remote-update protocol allows rsync to transfer just the differences between two sets of files across the network connection, using an efficient checksum-search algorithm described in the technical report that accompanies this package.

Some of the additional features of rsync are:

  • support for copying links, devices, owners, groups, and permissions
  • exclude and exclude-from options similar to GNU tar
  • a CVS exclude mode for ignoring the same files that CVS would ignore
  • can use any transparent remote shell, including ssh or rsh
  • does not require super-user privileges
  • pipelining of file transfers to minimize latency costs
  • support for anonymous or authenticated rsync daemons (ideal for mirroring)



alltså, rsync är fantastiskt. och för mitt ändamål är det helt perfekt.

inloggad på min mbp kör jag:
screen rsync --progress -ruv 192.168.0.100:/storage/mp3 /Volumes/Lacie Disk/

först använder jag kommandot screen som gör att jag skapar en virtuell session som jag kan ansluta till från andra ttyer (om jag stänger ner terminalen så fortsätter kommandot att köras. om jag sitter på jobbet så kan jag ansluta till samma screen och fortsätta se kommandot köra som jag inte lämnat datorn)
sen kör jag rsync med lite växlar. --progress gör att jag ser i procent efter varje fil hur mycket som är klart och lite annat.
-ruv är: recursive, update och verbose.
recursive - fortsätt ner i underkataloger.
update - fortsätt där du slutade, ersätt inte filerna om de redan finns.
verbose - ge mer output än vanligt.


kolla vad snyggt!