Jak kopírovat pomocí taru 

Koupil jsem si nový disk do notebooku a potřeboval tedy nějak překopírovat data ze starého disku na nový. Problém je, že redukci pro připojení 2,5" disku jsem sehnal jenom jednu. Nezbývá tedy, než kopírovat přes síť z notebooku na počítač.

Někde jsem četl, že nejlepší je pro kopírování použít tar. Díky tomu se zachovají správně všechny odkazy, práva... Lokální varianta vypadá takto:
root@stroj /mnt/zdroj# tar cf - . | (cd /mnt/cil ; tar xvf -)

Jako první mě napadla síťová varianta přes ssh:
root@cil /mnt/cil# ssh zdroj '(cd /mnt/zdroj ; tar -c --numeric-owner -f -)' | tar -xv --numeric-owner -f -
Tahle varianta měla ale úskalí. Šifrování dat dalo mému 800MHz notebooku zabrat, takže přenosová rychlost klesla na cca 2MB/s.

Protože jsem kvůli tomu nechtěl instalovat takové věci jako telnet, či rsh, použil jsem pro jednoduché spojení netcat:
root@zdroj /mnt/zdroj# tar -c --numeric-owner -f - . | nc -l -p 9000
root@cil /mnt/cil# nc zdroj 9000 | tar -xv --numeric-owner -f -
Elegantní, že. S takovou konfigurací se rychlost přenosu vyšplhala až k rychlosti Fast Ethernetu, tedy 10 MB/s.

UPDATE: ukázalo se, že je potřeba použít volbu --numeric-owner, která zabezpečí, že jména vlastníka a skupiny budou přenášena číselně a nikoli jako názvy. Stalo se mi totiž, že na různých stanicích byly stejným názvům skupin přidělena jiná čísla a po přenesení tarem se tak čísla skupin změnila.

A ještě poznámka na závěr: Pokud kopírujeme kořenový souborový systém, s výhodou využijeme příkaz mount --bind / /mnt/floppy, neboť tak zpřístupníme pouze obsah oddílu samotného a nikoli připojené disky.
SiLK 

Pro kopírování / adresáře lze s výhodou použít parametry -l a -P a -p. První nebude kopírovat připojené filesystémy, druhý zajistí, že se neodstraní počáteční / z cesty a třetí zachová práva souborů.

Komentáře

Pro tento záznam nejsou komentáře povoleny.