归档与压缩
作为一个运维人员,我们经常需要备份文件,那么归档与压缩的工具我们就不得不了解一些。
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压缩工具
另外一个好用的工具,不用记住这么多的参数,而且支持多种格式。
安装: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