歸檔與壓縮
作為一個(gè)運(yùn)維人員,我們經(jīng)常需要備份文件,那么歸檔與壓縮的工具我們就不得不了解一些。
tar工具的使用
提到壓縮我們最先想到的就是tar了,先來(lái)看看語(yǔ)法
長(zhǎng)選項(xiàng) | 簡(jiǎn)寫(xiě) | 描述 |
---|---|---|
-create | c | 創(chuàng)建tar歸檔文件 |
-append | r | 把要存檔的文件追加到歸檔文件的末尾 |
-list | t | 列出壓縮的文件內(nèi)容 |
-same-permissions | p | 保持原始的文件權(quán)限 |
-extract | x | 解壓 |
-exclude=pattern | X | 以PATTERN模式排除文件 |
-verbos | v | 列出讀取或者提取的文件名,與-list一起使用顯示長(zhǎng)信息 |
-directory | C | 指定目錄 |
-giz | z | 以gzip格式 |
-bzip2 | j | 通過(guò)bzip2壓縮歸檔 |
Gzip 是最古老的壓縮工具,壓縮率最小,bzip2 的壓縮率稍微高一點(diǎn)。另外,xz 是最新的壓縮工具,壓縮率最好。xz 具有最佳壓縮率的代價(jià)是:完成壓縮操作花費(fèi)最多時(shí)間,壓縮過(guò)程中占有較多系統(tǒng)資源。
實(shí)戰(zhàn)練習(xí):壓縮文件的時(shí)候某類(lèi)文件其實(shí)是不需要壓縮的,例如某些視頻文件。用一個(gè)shell腳本來(lái)完成文件中不包含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/*
通過(guò)file來(lái)判斷文件類(lèi)型,$?判斷是否是mp4文件,是的把這個(gè)文件提交給tar -X排除這個(gè)文件。
dtrx壓縮工具
另外一個(gè)好用的工具,不用記住這么多的參數(shù),而且支持多種格式。
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
使用方法非常簡(jiǎn)單直接dtrx filename好了。過(guò)多信息可以參考Dtrx – An Intelligent Archive Extraction
find命令搜索
find是非常強(qiáng)大的搜索工具,語(yǔ)法很簡(jiǎn)單,但是變化無(wú)窮,以下查找均在當(dāng)前目錄下進(jìn)行
用文件名稱(chēng)去查找
#查找當(dāng)前目錄以及下2層目錄中大于2M的文件:
find . -maxdepth 3 -type f -size +2M
#查找以php結(jié)尾的文件夾
find . -type d -name "*php"
#找到一個(gè)文件并刪除
find . -type f -name filename -exec rm -f {} \
find . -type f -name filename |xargs rm -f
#找到空的文件夾
find . -type d -empty
按照文件權(quán)限去搜索
# 把所有權(quán)限為777的文件改為644
find . -type f -perm 0777 -print -exec chmod 644 {} \
#把權(quán)限為777的目錄改為755
find . -type d -perm 0777 -print -exec chmod 755 {} \
按照時(shí)間去查找
#查找30天內(nèi)訪問(wèn)atime(或者修改mtime)過(guò)的配置文件
find . -type f -iname "*.conf" -atime -30 -print