Using tar and ssh to efficiently copy files preserving permissions

I found this so useful and have to go hunting for it fairly often that I decided to save a copy on my webpage. Source is located at the bottom.

Have you had situations where disk-space is sparse, so making full tars (although compressed) is impossible? Here is an ssh trick that could help you copy over files without using too much diskspace. This trick will tar a directory from a computer, but the file that it would normally create, is standard out, so it is redirected back to the script on the computer you are working on. The computer you are working on extracts the information directly, so there is no location where (redundant) files are stored. ssh user@machine-where-precious-data-is "tar czpf - /some/important/data" | tar xzpf - -C /new/root/directory You are now directly copying data from the "machine-where-precious-data-is" to the machine you are working on, using the benefits of tar (preserving permissions, links, etc) but not being hindered by the difficulties of tar. (making these possibly large files and so on.) I used this trick to copy users directories from one machine to the other. An alternative command, reverse and not crossing filesystem boundries: tar cXpf - /some/important/data | ssh user@destination-machine "tar xpf - -C /some/directory/"

SOURCE: http://meinit.nl/using-tar-and-ssh-to-efficiently-copy-files-preserving-permissions

Published on 2009-11-12 18:49:09.