歸檔與壓縮
作為一個運維人員,我們經(jīng)常需要備份文件夏志,那么歸檔與壓縮的工具我們就不得不了解一些垒拢。
tar工具的使用
提到壓縮我們最先想到的就是tar了,先來看看語法
長選項 | 簡寫 | 描述 |
---|---|---|
-create | c | 創(chuàng)建tar歸檔文件 |
-append | r | 把要存檔的文件追加到歸檔文件的末尾 |
-list | t | 列出壓縮的文件內(nèi)容 |
-same-permissions | p | 保持原始的文件權限 |
-extract | x | 解壓 |
-exclude=pattern | X | 以PATTERN模式排除文件 |
-verbos | v | 列出讀取或者提取的文件名,與-list一起使用顯示長信息 |
-directory | C | 指定目錄 |
-giz | z | 以gzip格式 |
-bzip2 | j | 通過bzip2壓縮歸檔 |
Gzip 是最古老的壓縮工具荣恐,壓縮率最小液斜,bzip2 的壓縮率稍微高一點。另外叠穆,xz 是最新的壓縮工具少漆,壓縮率最好。xz 具有最佳壓縮率的代價是:完成壓縮操作花費最多時間硼被,壓縮過程中占有較多系統(tǒng)資源示损。
實戰(zhàn)練習:壓縮文件的時候某類文件其實是不需要壓縮的,例如某些視頻文件嚷硫。用一個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壓縮工具
另外一個好用的工具脆贵,不用記住這么多的參數(shù),而且支持多種格式起暮。
安裝: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天內(nèi)訪問atime(或者修改mtime)過的配置文件
find . -type f -iname "*.conf" -atime -30 -print