HOWTO Copy files using cp, cpio, dd and tar

HOWTO Copy files using cp, cpio, dd and tar

From Consultancy.EdVoncken.NET

Jump to: navigation, search

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 -)