Monday, January 26, 2009

How to use Linux cpio ?

http://www.cyberciti.biz/faq/how-do-i-use-cpio-command-under-linux/

#cat /opt/oracle/soa/soa_linux_x86_101310_disk1.cpio | cpio -idmv


As I said earlier, cpio works like tar but it can read input from the "find" command. This is nifty feature. For example you can find out all *.c files and backup with cpio command.

# find / -name "*.c" | cpio -o --format=tar > c-file.backup.tar
# find / -iname "*.pl" | cpio -o -H tar > perl-files.tar

You can also specify file name using -F option:

# find / -iname "*.pl" | cpio -o -H tar -F perl-files.tar

Where,

  • -o: Create archive
  • -F: Archive filename to use instead of standard input or output. To use a tape drive on another machine as the archive.
  • -H format: Specify file format to use.
  • -i: Restore archive

You can extract archive with the following command:

# cpio -i -F perl-files.tar

You can list file inside archive i.e. list contents of the cpio file with following command:

# cpio -it -F perl-files.tar

You can write archive of /home to tape (drive /dev/nst0), type the following command:

# find /home | cpio -o -H tar -F /dev/nst0

Restore backup using following command:

# cpio -i -F /dev/nst0

Backup /home dir, to remote system tape drive:

# find /home | cpio -o -H tar -F user@backup.nixcraft.in:/dev/nst0 --rsh-command=/usr/bin/ssh

No comments: