第八章 文件与文件系统的压缩
1. 压缩命令
$ gizp
- $ gzip [-vldt#c] filename 压缩或解压gz格式文件
- -vl 显示额外信息
- -d 用来解压缩 (默认压缩和解压均删除源文件)
- -t 检测压缩文件一致性
- -7 压缩等级为7 最好为 9 默认为 6
- -c 将压缩数据输出到屏幕上用 > filename.gz 重定向 避免源文件被删 如
$ gzip filename -vc > filename.gz
- $ znew filename 将compress 压缩的 .Z 文件转成 .gz 文件
- $ zcat / zmore / zless filename 读取压缩文件的数据内容
- $ zgrep ‘keyword’ filename 查找并显示关键字所在一行
$ bzip2
- $ bzip2 [-vldt#ck] filename 压缩或解压格式文件
- -vldt#c 同上
- -k 保留原始文件
- $ bzcat / bzmore / bzless / bzgrep 同上
$ xz
- $ xz [-vldt#ck] filename 压缩文件(适用于.xz)
- -vldt#ck 同上
- $ xzcat / xzmore / xzless / xzgrep 同上
2. 打包命令
$ tar -c
- $ tar [-cvPpt] -f new_filename.tar filename1 filename2 … [–exclude=ex_filename] --newer-mtime=“date” 对多个文件或目录进行打包
- -c 进行打包操作
- -v 在过程中显示文件名
- -P 保留绝对路径 (默认只取源文件名使得解压后存放在原来目录下防止覆盖绝对路径下的文件)
- -p 保留源文件的权限和属性
- -t 查看打包的文件内容(注意加上-f)
- –exclude=ex_filename 排除的文件(注意排除自己)
- –newer-mtime=“2017/12/31” 对比date日期新的文件进行操作 其中mtime可换乘atime , ctime
$ tar -[zjJ]c
- $ tar [-zc / -jc / -Jc][-vPpt --exclude --newer] -f new_filename.tar.[gz/bz2/xz] filename1 filename2 … 对多个文件或目录进行打包并压缩
- -vPpt --exclude --newer 同上
- -z / -j / -J : 以 gz/bz2/xz格式压缩
$ tar -[zjJ]x
- $ tar [-zx/ -jx / -Jx] [-vPpt --exclude --newer] -f filename.tar.[gz/bz2/xz] -C target_directory sub_filename 解压文件
- -vPpt --exclude --newer 同上
- subfilename 只对压缩文件中的subfilename解压
- -C target_directory 解压到目标目录下
- $ tar -cv -f - filename | tar -xv -f - -C target_directory 用打包的方式移动目标文件到本目录
3. 文件系统备份
$ xfsdump
- $ xfsdump -I 显示记录的备份信息
- 备份信息存在 /var/lib/xfsdump/inventory/ 中
- $ xfsdump [-L S_LABEL] [-M M_LABEL] [-l #] [-f dumpfile] mount_point 备份xfs文件系统(需要已挂载,UUID不同,root权限)
- -L/M LABEL 设置session label 或 media label
- -l # 设置备份的level用于增量备份,其中根据记录信息必须有-l n-1备份才能备份-l n
- -f filename 设置备份文件的路径和名称
$ xfsrestore
- $ xfsrestore -I 显示记录的备份信息
- $ xfsrestore -f dumpfile [-L S_LABEL] [-s directory] [-i] directory 将备份文件在文件加下解压覆盖
- -L S_LABEL 匹配备份文件的LABEL信息,增加准确性
- -s directory 仅恢复其中的某一个文件
- -i 进入交互模式选择恢复的文件
4. 光盘写入工具
$ mkisofs
$ cdrecord
5. 其他命令
$ dd
- $ dd if=input_file of=output_file [bs=block_size count=number] 备份文件
- if 读取的文件或是设备路径 of 输出的文件路径
- bs 读取的块大小 count 块的数量
- $ dd是从一个扇区一个扇区复制数据比较慢
- $ dd if=/dev/zero of=/temp/tempfile bs=1Mk count=200 创建一个200Mk的空文件
- 用 $ dd 恢复文件系统
- $ gdisk 划分分区sda1
- $ dd if=/dev/vda1 if=/dev/sda1 复制
- $ xfs_repair -L /dev/sda1 清楚文件系统的log
- $ uuidgen 生成一个新的UUID
- $ xfs_admin -U UUID /dev/sda1 设置文件系统的UUID
- $ mount /dev/sda1 /mnt 挂载
- $ xfs_growfs /mnt 让挂载点的文件系统可以利用剩余空间
$ cpio
6. 备份问题
SELinux权限问题
恢复/etc文件后系统会还原配置文件,导致无法读取/etc/shadow,有三种解决方法:
- 登录系统后修改 /etc/selinux/config 将SELinux改成permissive模式
- 登陆系统后建立 /.autorelabel文件
- 恢复后不立即重新启动 用restorecon -Rv /etc 修复SELinux类型