CPIO command to backup and restore in Linux

by
Share this Article: Facebook0Google+0Twitter0LinkedIn0Reddit0StumbleUpon0

The cpio command is one of the most commonly used Linux back up tools.


The cpio command has two unusual features. Unlike tar , in which the files to back up are typed in as part of the command, cpio reads the files to work with from the standard input (in other words, the screen). This feature means that cpio must be used as part of a multiple command or with a redirection pipe.



cpio must always be used with one of three flags. Flags are options that set the mode in which the command runs. Only one flag can be used at a time, and it must come before any other options. In addition, the choice of flags limits the options that can be used. Each flag also has a gnu option that can used in its place. The gnu option gives a convenient name for each flag: extract, create, and pass- through. (definition from debianhelp.uk)

- Download and install CPIO  in  Linux  debian/ubuntu

$sudo  apt-get   install   cpio

Download and install  CPIO  in  Fedora/centos/RHEL

#yum install  cpio -y 


How to use cpio commands :

Lets  give  some  examples to explain you the use of cpio commands.

Backup :

For example, we  have  to  backup  directory   /home/unixmen1

-go  to  this  directory

[root@localhost pirat9]# cd  /home/unixmen1/

see  the  content of  this  directory  :

[root@localhost unixmen1]# ls -altr

total 16
drwxr-xr-x. 5 root root 4096 2009-08-12 09:05 ..
-rw-r–r–  1 root root    0 2009-08-12 09:05 unixmen_com.file
drwxr-xr-x  2 root root 4096 2009-08-12 09:05 directory1
drwxr-xr-x  2 root root 4096 2009-08-12 09:05 directory6
-rw-r–r–  1 root root    0 2009-08-12 09:06 fileX
drwxr-xr-x  4 root root 4096 2009-08-12 09:06 .
-rw-r–r–  1 root root    0 2009-08-12 09:06 logo.GIF
[root@localhost unixmen1]#

now  we  will backup  this  directory  and  copy  the  backup file  to  /opt  directory

[root@localhost unixmen1]# find  .  -print  | cpio -ocv  > /opt/backup.cpio

.
./directory6
./directory1
./logo.GIF
./fileX
./unixmen_net.file
2 blocks

[root@localhost unixmen1]# ls -altr /opt

total 16
drwxr-xr-x   7 root root 4096 2009-07-01 09:38 omni
drwxr-xr-x. 25 root root 4096 2009-08-11 03:16 ..
drwxr-xr-x   3 root root 4096 2009-08-12 09:10 .
-rw-r–r–   1 root root 1024 2009-08-12 09:10 backup.cpio

lets  remove  some  file  from  /home/unixmen1  to  check  the  backup

[root@localhost unixmen1]# ls

directory1  directory6  fileX  logo.GIF  unixmen_net.file

[root@localhost unixmen1]# rm -f  logo.GIF  unixmen_com.file

[root@localhost unixmen1]# ls
directory1  directory6  fileX

Restore :

Now  we  want  to  restore  the  directry .

[root@localhost unixmen1]#  cpio -icuvd   < /opt/backup.cpio

.
directory6
directory1
logo.GIF
fileX
unixmen_net.file
2 blocks

check  if  the  files  are  back. with

[root@localhost unixmen1]# ls -altr

total 16
drwxr-xr-x. 5 root root 4096 2009-08-12 09:05 ..
drwxr-xr-x  2 root root 4096 2009-08-12 09:05 directory1
drwxr-xr-x  2 root root 4096 2009-08-12 09:05 directory6
-rw-r–r–  1 root root    0 2009-08-12 09:12 unixmen_com.file
-rw-r–r–  1 root root    0 2009-08-12 09:12 logo.GIF
-rw-r–r–  1 root root    0 2009-08-12 09:12 fileX
drwxr-xr-x  4 root root 4096 2009-08-12 09:12 .

Congratulation  ,  your   files  are  back  :) .

For questions please refer to our Q/A forum at : http://ask.unixmen.com/

Share this Article: Facebook0Google+0Twitter0LinkedIn0Reddit0StumbleUpon0