1 文件的打包与解包
包文件:是许多文件放在一起打成一个包,放在一起前文件的大小总和与放一起后的大小总和是相同的。
1.1 tar命令
1)打包: tar cvf 包文件名 文件
//c打包,v显示打包时的详细动态,f表示使用归档文件,必须写
例如:tar cvf f.tar f1 f2
2)查看包文件中的内容: tar tf 包文件名
例如:tar tf f.tar //t是显示tar打包文件里的内容
3)解包:tar xvf 包文件名 //默认解包到当前目录,原来的包还在
例如:tar xvf f.tar //x解包参数
如果是解包到指定目录:tar xvf 包文件名 -C 目录
例如:tar xvf f.tar -C test //C 指定解包的目的目录
4)其他
tar Af b.tar a.tar //把a.tar中的文件追加到b.tar中去
tar rf a.tar f1.txt f2.txt //把f1,f2追加到a.tar中去,文件后缀不一定是txt
tar uf a.tar f1.txt f2.txt //判断f1,f2两个文件如果比a.tar中的新,则替换
tar cf a.tar f1.txt f2.txt --remove-files //把f1,f2文件打入a.tar包中,完成打包后,将2个文件从本地删除
tar f a.tar --delete f1.txt //删除a.tar包中的f1.txt文件
tar f a.tar --get f1.txt f2.txt //提取a.tar包中的f1,f2
注意:使用tar命令为文件打包,包文件后缀默认为.tar;对目录也可以打包
1.2 cpio命令
注意:该命令打包用的少,解包有时候会用cpio
1)打包,配合find使用:#find ./ -type f | cpio -ocvB > f.cpio
//o 将数据copy到文件或设备上;c是一种比较新的portable format方式存储;v在屏幕上显示备份过程中的文件名;
2)查看包内容:#cpio -tv < f.cpio
3) 解包: #cpio -ivdm < f.cpio
注意:使用cpio命令为文件打包,包文件后缀默认为.cpio
2 文件的压缩与解压
压缩文件:把一堆文件压缩了,文件压缩后总体变小了
压缩命令 gzip bzip2 xz
解压缩命令 gunzip bunzip2 unxz
2.1 压缩包的创建与解压
1)创建压缩包
tar cvfz 压缩包文件.tar.gz 文件 //tar.gz=tgz
tar cvfj 压缩包文件.tar.bz2 文件 //tar.bz2=taz
tar cvfJ 压缩包文件.tar.xz 文件 //tar.xz=txz
2)解压缩包
tar xvfz 压缩包文件.tar.gz
tar xvfj 压缩包文件.tar.bz2
tar xvfJ 压缩包文件.tar.xz 注意:解压至指定目录用 –C
3)查看压缩包内容
tar tf 压缩包文件 //无论后缀是哪种,都可以用这个查看
3 备份
备份的目的:用来恢复数据
3.1 备份策略
完整备份:又叫完全备份,备份全部的数据。恢复便捷,只需要一份完整备份即可恢复全部数据;但是备份时间长,重复文件较多
增量备份:备份上一次备份以外的数据。备份时间快,重复文件少;恢复数据需要一份完整备份和一系列的增量备份,并且要按照先后顺序进行恢复,如果丢失任意一份增量备份,则无法完全恢复数据
差异备份:备份自上次完整备份以来以外的数据。备份时间比完整备份快,重复文件比完整备份少,恢复数据方便,只需要一份完整备份和最新的一份差异备份即可恢复所有数据。
数据量小每月做一次完整备份,每周做一次增量或差异备份;数据量大的就每个季度做一次完整备份,每月做一次增量或差异备份;安全性要求高的就要采取两地三中心的策略
3.2 备份命令dump
1)如果没有这个命令,安装即可:yum install dump –y 。
2)dump可以备份文件、目录与文件系统(分区挂载点里的文件)
3)如何用dump备份
注意:
a) 备份文件和目录时不能将备份信息写入至/etc/dumpdates,即不能使用-u参数,只允许0级(完整备份)备份;
b) 对文件系统进行备份,默认的方式为增量备份,如果采用差异备份,每次都进行1级备份即可。
格式:dump –备份级别-uf 备份到哪个目录上 要备份的文件/目录/文件系统
例如:
dump -0f f1.dump f1 //对文件备份时不能加u这个参数,且备份级别只能是0
dump -0f test.dump test //test是个目录
dump -1f /dev/sdb /dev/sda1 //将文件系统sda1备份到sdb中
dump -W //查看最后一次备份的文件及详细信息
增量备份的实现:
如果是将备份文件存储到系统安装时的sda盘的分区中,那么不需要对sda分区进行挂载使用,因为在安装时已经弄好了。但是如果把备份文件存储到自己添加的硬盘中去,需要对自己添加的磁盘进行格式化、挂载使用。在挂载的LV上操作也可以。想存到哪个目录就进到哪个目录下。
例如如果想要把/dev/sdc中的内容存到/dev/sdb中去,首先要把两块磁盘格式化,挂载使用,/dev/sdb挂载点/mnt/sdb,/dev/sdc 挂载点/mnt/sdc。
cd /mnt/sdb
touch /mnt/sdc/f0
dump -0uf 0.dump /mnt/sdc
ls
restore –tf 0.dump
touch /mnt/sdc/f1
dump -1uf 1.dump /mnt/sdc
ls
restore -tf 1.dump
touch /mnt/sdc/f2
dump -2uf 2.dump /mnt/sdc
ls
restore -tf 2.dump
touch /mnt/sdc/f3
dump -3uf 3.dump /mnt/sdc
ls
restore -tf 3.dump
差异备份的实现:
cd /mnt/sdb
touch /mnt/sdc/f0
dump -0uf 0.dump /mnt/sdc
ls
restore –tf 0.dump
touch /mnt/sdc/f1
dump -1uf 1.dump /mnt/sdc
ls
restore -tf 1.dump
touch /mnt/sdc/f2
dump -1uf 2.dump /mnt/sdc
ls
restore -tf 2.dump
3.3 恢复命令
1)查看备份文件中的数据
restore -tf 备份文件 //t指定备份介质中的文件,f指定所需要还原的备份介质
2)恢复备份文件至当前目录
restore -xf 备份文件 //x提取备份介质中的指定文件
restore -rf 备份文件 //r指定还原操作
//有时候会让输入从哪一个卷开始恢复,输入1 即可
3.4 dd命令
指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换
两个特殊的设备文件:
1)/dev/null位桶,垃圾桶,一般将文件连接至位桶相当于删除该文件。常用于将文件软连接至此,相当于删除文件;还用于将系统不需要的日志文件或输出重定向至/dev/null相当于忽略系统日志的或输出。
例如: systemctl mask firewalld , systemctl unmask firewalld 查看输出结果
或echo hello word > /dev/null
2)/dev/zero 提供无限个0字符,一个空白文件里面都是0字符,当写入内容后,有的字符就会变成1,从而常用于生成文件。删除文件就是把里面的内容都写成0字符。
dd if=源文件/设备名称 of=目标文件/设备名称 bs=每次转换的大小 count=转换的块的数量
例如:dd if=/dev/cdrom of=./centos.iso
//将光盘转换为iso,相当于光盘的刻录,备份
dd if=/dev/sda1 of=./boot.bak //将sda3转换成一个文件
dd if=/dev/zero of=./disk1.img bs=1M count=100 //创建一个100M的虚拟硬盘,每次读写缓存为2M,总计累计100次。即bs*count=100M
用dd生成一个swap文件并使用:
dd if=/dev/zero of=./1.swap bs=100M count=1 // 生成文件
格式化:mkswap ./1.swap
chmod 权限值 文件名 //更改文件权限
swapon ./1.swap //启用
swapon //查看当前系统内所有swap空间
swapoff ./1.swap //关闭
3.5 genisoimage
将某个目录打包成ISO映像文件
genisoimage -J -L -r -o etc.iso /etc
//将/etc目录打包成etc.iso文件,J使用Joliet格式的目录与文件名称;L允许文件名的第一个字符为句号;r使用rock ridge extensions,并开放全部文件的读取权限;o 指定映像文件的名称
genisoimage -J -v –o backup.iso /mnt/backup
//将/mnt/backup目录做成一个backup.iso备份 ,v显示详细动作
3.6 其他命令
wodim 刻录光盘 ,
mt 控制磁带
转载请注明出处,谢谢!