HOWTO Copy files using cp, cpio, dd and tar
From Consultancy.EdVoncken.NET
Unix treats everything as a file, and offers multiple ways to copy data around:
- cp
- The standard Unix copy tool
- cpio
- CoPy In/Out
- dd
- Copy & Convert
- scp
- Secure CoPy
- tar
- Tape ARchiver
Contents |
[edit] cpio
Copy all files, less than 5GB in size, to another host using SSH:
find . -size -5G -print0 |cpio --null -oaV | ssh remotehost 'cd /var/lib/xen && cpio -imVd'
I used this example to backup small Xen instances to a second server.
[edit] dd
Copy a file to another host using SSH:
dd if=/source/file | ssh remotehost 'dd of=/destination/file'
I actually used the command below to create a backup of a large (1TB) LVM partition containing a Xen guest image:
dd if=/dev/vg_dom0/lv_domU_fileserver | ssh zen 'dd of=/dev/vg_md1/lv_domU_guardian'
[edit] scp
Secure Copy can only copy regular files - for copying LVM partitions, you'll need to use a different mechanism (for example, using dd|ssh|dd).
scp /source/file user@remotehost:/destination/file
[edit] tar
Tar is nice for copying entire directory trees, including symlinks.
cd /source/dir && tar cf - . | (cd /destination/dir && tar xvf -)