LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 4014|回复: 5

系统备份命令 cpio dump tar restore[原创:Pye兄]

[复制链接]
发表于 2002-12-4 19:32:52 | 显示全部楼层 |阅读模式
12月1日
Pye

系统备份命令 cpio

另外一个复杂的备份命令,

cpio命令有三种模式:
copy-out        将系统的文件生成一个cpio格式的包
copy-in                将一个cpio格式的包解开
copy-pass        相当于一个cp命令,不进行任何的压包和解包的工作,经常用来复
制文件分别对应的参数是-o,-i,,-p这样记忆就比较方便了,linux命令的参数虽然很
多,但是还是有规律可以寻找的。

创建:
原始形态:
[root@laptop tmp]# cpio -o -O photo.cpio
按回车以后要手工输入你所需要打包的文件名。以Ctrl+D组合键结束。

[root@laptop tmp]# ls
Dcp_0803.jpg  Dcp_0810.jpg  Dcp_0815.jpg  Dcp_0820.jpg  Dcp_0827.jpg
Dcp_0804.jpg  Dcp_0811.jpg  Dcp_0816.jpg  Dcp_0821.jpg  Dcp_0828.jpg
Dcp_0805.jpg  Dcp_0812.jpg  Dcp_0817.jpg  Dcp_0822.jpg
Dcp_0808.jpg  Dcp_0813.jpg  Dcp_0818.jpg  Dcp_0825.jpg
Dcp_0809.jpg  Dcp_0814.jpg  Dcp_0819.jpg  Dcp_0826.jpg

[root@laptop tmp]# ls | cpio -o > photo.cpio
cpio: Dcp_0803.jpg: truncating inode number
cpio: Dcp_0804.jpg: truncating inode number
cpio: Dcp_0805.jpg: truncating inode number
cpio: Dcp_0808.jpg: truncating inode number
cpio: Dcp_0809.jpg: truncating inode number
cpio: Dcp_0810.jpg: truncating inode number
cpio: Dcp_0811.jpg: truncating inode number
cpio: Dcp_0812.jpg: truncating inode number
cpio: Dcp_0813.jpg: truncating inode number
cpio: Dcp_0814.jpg: truncating inode number
cpio: Dcp_0815.jpg: truncating inode number
cpio: Dcp_0816.jpg: truncating inode number
cpio: Dcp_0817.jpg: truncating inode number
cpio: Dcp_0818.jpg: truncating inode number
cpio: Dcp_0819.jpg: truncating inode number
cpio: Dcp_0820.jpg: truncating inode number
cpio: Dcp_0821.jpg: truncating inode number
cpio: Dcp_0822.jpg: truncating inode number
cpio: Dcp_0825.jpg: truncating inode number
cpio: Dcp_0826.jpg: truncating inode number
cpio: Dcp_0827.jpg: truncating inode number
cpio: Dcp_0828.jpg: truncating inode number
2792 blocks

注:-o 参数也可义用 --create替代,表示正在使用copy-out模式,
    -O 参数只能和-o一起使用,表示出于out模式时,指定生成的文件。

root@laptop tmp]# ls | cpio -o -O photo.cpio
这个命令,是等效的,只不过前者用重定向符号实现的而已。由此可以体现Linux命令
的复杂还有变化多样,所以要多思考。

查看,解包:

解包

[root@laptop tmp]# cpio -i -I photo.cpio
2792 blocks

注:-i 参数是表示使用copy-in模式
       查看一个cpio包里的文件列表的参数和tar的参数有点相像,都是用-t参数,
       也可以用--list替代。
    -I 参数只和-t , -i 两个参数连用,表示在copy-in模式时指定一个cpio包。
       有点像tar包里的-f参数,无论是打tar包还是解tar包或者是查看tar的内容
       ,都要加-f参数一样的道理,在这里,cpio只不过分成了copy-in和copy-out
       两个部分而已。

[root@laptop tmp]# cpio -t -I photo.cpio
Dcp_0803.jpg
Dcp_0804.jpg
Dcp_0805.jpg
Dcp_0808.jpg
Dcp_0809.jpg
Dcp_0810.jpg
Dcp_0811.jpg
Dcp_0812.jpg
Dcp_0813.jpg
Dcp_0814.jpg
Dcp_0815.jpg
Dcp_0816.jpg
Dcp_0817.jpg
Dcp_0818.jpg
Dcp_0819.jpg
Dcp_0820.jpg
Dcp_0821.jpg
Dcp_0822.jpg
Dcp_0825.jpg
Dcp_0826.jpg
Dcp_0827.jpg
Dcp_0828.jpg
2792 blocks

查看一个cpio包里的文件列表的参数和tar的参数有点相像,都是用-t参数,这里可以
用--list替代。

还有一些高级的应用参数:
-u
解包时如果文件已经在也强行覆盖
[root@laptop tmp]# cpio -i -I test.cpio -u
[root@laptop tmp]# cpio -i -u -I test.cpio

-f
文件匹配参数,但是是一个反向的,就是符合这个指定的文件不解包
[root@laptop tmp]# cpio -i -I test.cpio -f *.rpm
这条命令的结果是test.cpio里除了*.rpm文件都会解包出来。

-L
这个参数是在打包的时候用的,如果被打包的文件中有符号连接的话,这个参数将会把连接的目标文件打入包中,而不是仅仅把符号连接打包。
[root@laptop tmp]# ls | cpio -o -O newtest.cpio -L

-R
这个参数只用在解包的时候,是用来给解包出来的文件设置所有者和所属组的。但是用户和组的关系必须已经在passwd,group两个文件中存在!!!
[root@laptop tmp]# cpio -i -I test.cpio -R yue.pye
[root@laptop tmp]# cpio -i -I test.cpio -R yue:pye
这里是两种表示用户组之间关系的方式一个是.还有一个是:

-r
这个参数只在解包是有用,而且不能和-u参数同时使用,否则失效,他的作用是当包中的文件和解包所在目录下的某个文件重名的时候自动提示是否需要更名。
[root@laptop tmp]# cpio -i -I test.cpio -r
rename 12.1 -> a
rename backgroud -> c
rename bin -> bindir
rename crystal ->

-A
这个参数只用在压包的时候,用来向已经存在的cpio包添加文件的
[root@laptop tmp]# cpio -o -O test.cpio -A
[root@laptop tmp]# cpio -o -A -O test.cpio
 楼主| 发表于 2002-12-4 19:34:42 | 显示全部楼层
dump,tar,restore

呵呵,tar命令不但可以用来打包,还可以用来备份用的,:),但是要用来做以下操
作的话,打包的时候不能加上z(gzip压缩)参数。

[root@laptop pyegrp]# ls
enlightenment-0.16.5.tar.gz photo testdump yue.tar
gnomba-0.6.2-4.i386.rpm proftp yue

[root@laptop pyegrp]# tar cvf proftp.tar proftp/
proftp/
proftp/configuration.pdf
proftp/anonymous.conf
proftp/basic.conf
proftp/virtual.conf
proftp/abc

[root@laptop pyegrp]# tar rf proftp.tar testdump

[root@laptop pyegrp]# tar ft proftp.tar
proftp/
proftp/configuration.pdf
proftp/anonymous.conf
proftp/basic.conf
proftp/virtual.conf
proftp/abc
testdump

可以发现testdump已经被添加进去了

[root@laptop pyegrp]# tar Af proftp.tar yue.tar
可以将一个tar包和另一个合起来。

dump命令是一个专门用来备份的工具。

[root@laptop pyegrp]# dump -0 -u -f /dev/hda3 /home/pyegrp/
DUMP: Date of this level 0 dump: Sat Nov 30 19:45:56 2002
DUMP: Dumping /dev/hda9 (/home/pyegrp) to /dev/hda3
DUMP: Added inode 7 to exclude list (resize inode)
DUMP: Label: none
DUMP: mapping (Pass I) [regular files]
DUMP: mapping (Pass II) [directories]
DUMP: estimated 15492 tape blocks.
DUMP: Volume 1 started with block 1 at: Sat Nov 30 19:46:01 2002
DUMP: dumping (Pass III) [directories]
DUMP: dumping (Pass IV) [regular files]
DUMP: Closing /dev/hda3
DUMP: Volume 1 completed at: Sat Nov 30 19:46:13 2002
DUMP: Volume 1 15490 tape blocks (15.13MB)
DUMP: Volume 1 took 0:00:12
DUMP: Volume 1 transfer rate: 1290 kB/s
DUMP: 15490 tape blocks (15.13MB) on 1 volume(s)
DUMP: finished in 12 seconds, throughput 1290 kBytes/sec
DUMP: Date of this level 0 dump: Sat Nov 30 19:45:56 2002
DUMP: Date this dump completed: Sat Nov 30 19:46:13 2002
DUMP: Average transfer rate: 1290 kB/s
DUMP: DUMP IS DONE

-0 是备份的等级,从0-9,0以后都是更新备份的参数,一般常用的是0和9
-u 是将备份记录写入/etc/dumpdates这个文件中

[root@laptop pyegrp]# cat /etc/dumpdates
/dev/hda9 0 Sat Nov 30 19:45:56 2002
/dev/hda9 9 Sat Nov 30 17:04:20 2002

注意,当你备份的目录是一个子目录,而不是一个分区的顶层目录时-u参数
是不能使用的。

-f 是指定备份到那个文件,也可以指定一个设备文件,我在这里指定的就是一个分区

更新备份:
在0级别备份的基础上,向/home/pyegrp写入一些新的文件,然后
umount /home/pyegrp
mount /home/pyegrp
注意如果不这样做,不会将新写入的文件备份进去的。
然后:
[root@laptop pyegrp]# dump -9 -u -f /dev/hda3 /home/pyegrp/
用restore tf /dev/hda3
就会看到刚刚写入的文件会出现在列表中。

restore命令是用来恢复备份的。
[root@laptop pyegrp]# restore rf /dev/hda3 /home/pyegrp

用restore命令来查看备份文件里的文件列表
[root@laptop pyegrp]# restore ft /dev/hda3
发表于 2002-12-4 19:51:16 | 显示全部楼层
GOOD 今天第1次知道这样的用法
发表于 2006-12-11 21:19:11 | 显示全部楼层
ifstat
回复 支持 反对

使用道具 举报

发表于 2006-12-13 20:11:40 | 显示全部楼层
学习中.....
以前我通常用
tar xvzf  或tar xjvf    解压缩
回复 支持 反对

使用道具 举报

发表于 2008-11-16 13:14:48 | 显示全部楼层
这个要学习下,不然出问题老是重装也太浪费时间了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表