LFCS系列笔记之归档与压缩

归档与压缩

作为一个运维人员,我们经常需要备份文件,那么归档与压缩的工具我们就不得不了解一些。

tar工具的使用

提到压缩我们最先想到的就是tar了,先来看看语法

长选项 简写 描述
-create c 创建tar归档文件
-append r 把要存档的文件追加到归档文件的末尾
-list t 列出压缩的文件内容
-same-permissions p 保持原始的文件权限
-extract x 解压
-exclude=pattern X 以PATTERN模式排除文件
-verbos v 列出读取或者提取的文件名,与-list一起使用显示长信息
-directory C 指定目录
-giz z 以gzip格式
-bzip2 j 通过bzip2压缩归档

Gzip 是最古老的压缩工具,压缩率最小,bzip2 的压缩率稍微高一点。另外,xz 是最新的压缩工具,压缩率最好。xz 具有最佳压缩率的代价是:完成压缩操作花费最多时间,压缩过程中占有较多系统资源。

实战练习:压缩文件的时候某类文件其实是不需要压缩的,例如某些视频文件。用一个shell脚本来完成文件中不包含mp4的文件的压缩

#!bin/bash
DIR=$1
tar -X < (for i in $DIR/*;do file $i|grep -i mp4;if [ $? -eq 0 ];then echo $i;fi;done) -cjf backup.tar.bz2 $DIR/*

通过file来判断文件类型,$?判断是否是mp4文件,是的把这个文件提交给tar -X排除这个文件。

dtrx压缩工具

另外一个好用的工具,不用记住这么多的参数,而且支持多种格式。

LFCS系列笔记之归档与压缩_第1张图片
Paste_Image.png

安装:Debian/Ubuntu等:

sudo apt-get install dtrx

CentOS/Fedora:

 wget http://brettcsmith.org/2007/dtrx/dtrx-7.1.tar.gz
tar -xf dtrx-7.1.tar.gz
cd dtrx-7.1
python setup.py install --prefix=/usr/local

使用方法非常简单直接dtrx filename好了。过多信息可以参考Dtrx – An Intelligent Archive Extraction

find命令搜索

find是非常强大的搜索工具,语法很简单,但是变化无穷,以下查找均在当前目录下进行

用文件名称去查找

#查找当前目录以及下2层目录中大于2M的文件:
find . -maxdepth 3 -type f -size +2M
#查找以php结尾的文件夹
find . -type d -name "*php" 
#找到一个文件并删除
find . -type f -name filename -exec rm -f {} \
find . -type f -name filename |xargs rm -f
#找到空的文件夹
find . -type d -empty

按照文件权限去搜索

#  把所有权限为777的文件改为644
find . -type f -perm 0777 -print -exec chmod 644 {} \
#把权限为777的目录改为755
find . -type d -perm 0777 -print -exec chmod 755 {} \

按照时间去查找

#查找30天内访问atime(或者修改mtime)过的配置文件
find . -type f -iname "*.conf" -atime -30 -print

你可能感兴趣的:(LFCS系列笔记之归档与压缩)