天天看点

《Linux命令、编辑器与Shell编程》读书笔记8-Linux数据备份与应用管理一、备份命令工具二、RPM管理

一、备份命令工具

【tar】

1. 备份为归档文件(.tar格式)

tar -cvf  归档文件名  源文件名/目录

查看包内文件列表:

tar -tf  tar包名

解压:

tar -xvf  tar包名

2. 压缩为.gz包

tar -zcvf  归档文件名  源文件名/目录

查看包内文件列表:

tar -tzf  tar包名

解压:

tar -zxvf  tar包名

3. 压缩为.bz2包(压缩率比gz高,但打包速度慢)

tar -jcvf  归档文件名  源文件名/目录

查看包内文件列表:

tar -tjf  tar包名

解压:

tar -jxvf  tar包名

*查看包内文件列表时,也可以统一使用:“tar -tvf  tar包名”这个命令。

【cpio】

1. 将当前目录下的所有文件归档为(使用选项o)backup.cpio文件,并显示归档过程(-v)

find  -print|cpio  -ov >./backup.cpio

2. 在上面的基础上,使用bzip2压缩生成归档文件:

find  -print|cpio  -ov |bzip2 > ./backup.cpio.bz2

3. 使用gzip压缩生成归档文件

find  -print|cpio  -ov | gzip > ./backup.cpio.gz

4. 查看cpio归档文件中的文件列表:

cpio  -tv < backup.cpio

5. 将上述备份文件恢复到当前目录

cpio  -iv < backup.cpio

6. 如果恢复时报找不到目录,则需要携带参数d:

cpio  -idv < backup.cpio

7. 恢复时想保留时间戳

cpio  -idmv < backup.cpio

8. 恢复备份包中的部分文件:

cpio  -idv  "*.user" < backup.cpio

9. 恢复内存镜像文件

zcat /boot/initrd-3.0.76-0.11-default | cpio -imd

*Linux内存镜像文件一般存放在引导区/boot目录下,以initrd开头。

【bzip2】

这是一个压缩文件的工具

bzip2 [OPTION]  file_name

【OPTION】

k:压缩/解压后,保留原始文件

d:执行解压

t:测试压缩文件的完整性

num:1~9,压缩率,1压缩率最低、速度最快,9反之,默认使用6

v:执行任务时显示详细信息

*不使用任何选项表示压缩文件,压缩后的文件会自动被重命名为.bz2后缀

【举例】

#以最大压缩率压缩文件:

bzip2  -9v  tomcat_8.0.28.tar

 tomcat_8.0.28.tar:  2.289:1,  3.495 bits/byte, 56.31% saved, 36290560 in,15853714 out.

#解压文件并保留源文件:

bzip2  -dkv  tomcat_8.0.28.tar.bz2

 tomcat_8.0.28.tar.bz2: done

【gzip】

gzip [OPTION]  original_file_name

【OPTION】

c:压缩后将结果输出到标准输出并保留原始文件

d:解压缩

l:显示压缩文件的详细信息

r:地柜地处理目录下的所有文件及子目录,或递归地解压缩文件内的目录和子目录

v:显示命令的执行过程

t:测试压缩文件

num:1~9,压缩级别,默认使用6

【整盘备份命令dd】

该命令类似于制作ghost镜像

dd <OPTION>

【OPTION】

if:指定要读取的文件,默认为标准输入

of:指定要输出的文件,默认为标准输出

ibs:指定读取数据时的块大小,默认512B

obs:指定输出数据时的块大小,默认512B

bs:同时指定读取、输出的块大小

count:指定读取的区块数

【举例】

1. 备份磁盘sda:

dd if=/dev/sda of=/mnt/backup/sda_backup.dd

2. 恢复磁盘数据:

dd if=/mnt/backup/sda_backup.dd of=/dev/sda

3. 备份时压缩备份数据

dd if=/dev/sda | gzip >/mnt/backup_sda.dd.gz

4. 将压缩备份的文件恢复

gzip -dc  /mnt/backup_sda.dd.gz |dd  of=/dev/sda

5. 将硬盘A的数据直接拷贝到硬盘B

dd if=/dev/sda  of=/dev/sdb

6. 由于该工具是直接读取磁盘上的块,可以用它制作磁盘镜像:

dd if=/dev/sda  of=/mnt/sda.iso

7. 产生一个5GB的文件放到当前目录下:

dd if=/dev/zero  of=test.5G  bs=1M count=5120

*/dev/zero的功能是无限制的提供数据0

8. 使用随机数销毁磁盘上的数据

dd if=/dev/urandom  of=/dev/sdd

9. 备份磁盘的分区表至当前目录:

dd if=/dev/sda  of=Parlist.img  bs=512 count=1

10. 恢复分区表

dd if= Parlist.img  of=/dev/sda

*理论上该命令可以在业务运行时执行,但为了保证数据一致性,还是要停止业务和数据库执行

二、RPM管理

【常用选项】

q:查询模式

a:查询所有已安装的rpm包

i:显示安装/卸载时的详细信息

l:显示软件包的文件列表,也就是这个rpm包被安装在什么位置

f:查询指定文件所属的软件包

v:显示命令执行过程

h:安装时显示进度信息

e:卸载指定的包

U:升级

force:强制操作,忽略冲突

oldpackage:强制升级

【举例】

1. 查询所有已安装的软件包

rpm  -qa| more

2. 查询某软件包的详细信息:

rpm  -qi  vsftpd-2.0.7-4.25.1

3. 安装rpm包:

rpm -ivh  vsftpd-2.0.7-4.25.1

有时,需要忽略冲突强制安装:

rpm -ivh  --force  vsftpd-2.0.7-4.25.1

4. 升级rpm:

rpm -Uvh  <rpm_name>

5. 卸载:

rpm -e  <rpm_name>

继续阅读