tar备份与恢复
tarball备份包 ——归档及压缩
归档:将许多零散的文件整理为一个文件的文档管理;文件总的大小基本不变
压缩:按某种算法减少文件所占用空间的大小;恢复时按对应的逆向算法解压
通常所说的“打一个备份包”指的是先做归档再做压缩,生成备份包文件
常见的压缩格式及命令工具
Windows下: .zip 、.rar 、.7z
Linux下:红色,代表压缩包
.gz 传统的压缩格式,压缩速度快 ---> gzip、gunzip
.bz2 较新,压缩比例高一些 ---> bzip2、bunzip2
.xz 最新,压缩比例高、压缩效率快 ---> xz、unxz
gzip、bzip2、xz压缩文件时直接将文件压缩成压缩包,原文件消失,并且不能压缩目录
tar压缩与解压缩时原文件不受影响
zip归档工具:
.zip 为跨平台的压缩包格式
zip和unzip工具【归档+压缩】
归档+压缩操作(制作 .zip 格式的备份包):
格式:zip [-r] 备份文件.zip 被压缩的文件和目录...
** 包含目录时必须加 -r 选项
# zip -r /opt/file.zip /boot/ /etc/passwd
# ll -h /opt
释放归档+解压操作(释放 .zip 格式的备份包):
格式:unzip 备份文件.zip [-d 目标文件夹]
# unzip /opt/file.zip -d /mnt
# ll -h /mnt
tar 工具 本身只做归档(不压缩),但可调用gzip、bzip2对归档结果进行压缩
格式: # tar 选项 压缩包的名字 被压缩的源文件
常用选项
– -c:创建归档 打包
– -x:释放归档 解包
– -f:指定归档文件名称(使用时百分百要加上它)
– -C:指定归档文件及释放的位置
– -z、j、J:调用 .gz、.bz2、.xz格式的工具进行处理
– -v:输出详细信息
– -t:显示归档中的文件清单
– -P:【path】保持归档内文件的绝对路径 #当解压缩时直接覆盖原路径下同名的文件
-d:指定解压到的目录
# tar -cf test01.tar /etc/passwd /boot/ #打包
备份与恢复操作
制作tar备份包: 使用 tar -c ... 命令
– tar -zcf 备份文件.tar.gz 被备份的文档....
– tar -jcf 备份文件.tar.bz2 被备份的文档....
– tar -Jcf 备份文件.tar.xz 被备份的文档....
– tar -z/j/JcPf 备份文件.tar.gz/bz2/xz 被备份的文档....
# tar -zcf /opt/tes01.tar.gz /etc/passwd /boot/
# tar -jcf /opt/test02.tar.bz2 /etc/passwd /boot/
# tar -Jcf /opt/test03.tar.xz /etc/passwd /boot/
# tar -zcPf /opt/home.tar.gz /home #以绝对路径压缩归档
查看tar备份包内容(不解压缩,只查看):
– tar -tf 备份文件
– tar -tPf 备份文件.tar.gz/bz2/xz
# tar -tf /opt/home.tar.gz #查看包里面的文件
释放归档压缩包:
格式:tar [选项]... 归档文件 [-C 目标目录]
– tar -xf 备份文件 [-C 目标目录]
– tar -xPf 备份文件.tar.gz/bz2/xz -C 目标目录
# tar -xf /opt/home.tar.gz -C /mnt/ #以相对路径的解压缩
# tar -xPf /opt/home.tar.gz -C /mnt/ #以绝对路径解压缩
统计目录或文件占用的空间:du -sh 目录路径 【sumary、human-readable】
总结:以绝对路径打包并压缩,在解压缩解包时,即可以以绝对路径释放也可以以相对路径释放;没有以绝对路径打包并压缩,在解压缩解包时,只可以以相对路径释放
在生产环境中,打包时最好都以绝对路径来进行打包
###############################################################################
示例:创建一个备份包
用 tar 工具完成以下备份任务:
创建一个名为 /root/backup.tar.bz2 的归档文件
其中包含 /usr/local 目录中的内容
tar 归档必须使用 bzip2 进行压缩
步骤一:创建备份文件
使用tar命令制作归档备份,结合-j选项调用bzip2压缩工具,保留绝对路径:
[root@server0 ~]# tar jcPf /root/backup.tar.bz2 /usr/local/
步骤二:确认结果
[root@server0 ~]# ls -lh /root/backup.tar.bz2 //确认文件
-rw-r--r--. 1 root root 1.9K 12月 23 23:22 /root/backup.tar.bz2
[root@server0 ~]# tar -tPf /root/backup.tar.bz2 //确认内容
使用tar备份系统
tar cvpzf backup.tgz --exclude=/proc --exclude=/mnt --exclude=/lost+found --exclude=sys --exclude=/media --exclude=/run --exclude=backup.tgz /
备份当前目录下的所有文件
tar -g /tmp/abc.snap -zxpf /tmp/data.tar.gz .
在需要恢复的目录下解压恢复
tar -zxpf /tmp/data.tar.gz -C .
恢复
tar xvpfz backup.tgz -c /
原文:https://blog.csdn.net/jsut_rick/article/details/78207234