原文:http://blog.51cto.com/irow10/1826458bash
最近整理了下公司的數據備份狀況。如下是部分操做的過程運維
一、rsync數據備份,具體備份過程就不詳細介紹。數據都備份在/bakup目錄下spa
二、刪除過時數據及空目錄3d
公司的備份數據量比較大,必須及時清除過時數據。code
1
2
3
4
5
6
7
|
echo
"日期:$(date +%Y-%m-%d);如下是以過時31天的文件:"
>
/var/log/delete
.log
find
/bakup
-mtime +31 -name
"*"
>>
/var/log/delete
.log
find
/bakup
-mtime +31 -name
"*"
-
type
f -
exec
rm
-f {} \;
#刪除bakup目錄下的全部空目錄(會逐級遞刪直到不存在任何空目錄)
echo
"日期:$(date +%Y-%m-%d);如下是須要刪除的空目錄:"
>>
/var/log/delete
.log
find
/bakup
-
type
d -empty >>
/var/log/delete
.log
find
/bakup
-depth -empty -
type
d -
exec
rm
-r {}
';'
|
三、使用tree命令打印備份目錄的結果blog
1
|
/usr/bin/tree
-shtN
/bakup/data
>>
/var/index
.txt
|
當備份目錄中存在多份備份數據,打印出來的數據將大量重複。咱們只想看到最新的數據排序
1
2
3
|
cd
/bakup/data
day=`
ls
-lt|
awk
'NR==2'
|
awk
'{print $9}'
`
/usr/bin/tree
-shtN
/bakup/data/
$day >>
/var/index
.txt
|
tree命令簡單介紹下ci
參數get
-a:顯示全部文件和目錄;string
-A:使用ASNI繪圖字符顯示樹狀圖而非以ASCII字符組合;
-C:在文件和目錄清單加上色彩,便於區分各類類型;
-d:先是目錄名稱而非內容; -D:列出文件或目錄的更改時間;
-f:在每一個文件或目錄以前,顯示完整的相對路徑名稱;
-F:在執行文件,目錄,Socket,符號鏈接,管道名稱名稱,各自加上"*","/","@","|"號;
-g:列出文件或目錄的所屬羣組名稱,沒有對應的名稱時,則顯示羣組識別碼;
-i:不以階梯狀列出文件和目錄名稱;
-l:<範本樣式> 不顯示符號範本樣式的文件或目錄名稱;
-l:如遇到性質爲符號鏈接的目錄,直接列出該鏈接所指向的原始目錄;
-n:不在文件和目錄清單加上色彩;
-N:直接列出文件和目錄名稱,包括控制字符;
-p:列出權限標示;
-P:<範本樣式> 只顯示符合範本樣式的文件和目錄名稱;
-q:用「?」號取代控制字符,列出文件和目錄名稱;
-s:列出文件和目錄大小;
-t:用文件和目錄的更改時間排序;
-u:列出文件或目錄的擁有者名稱,沒有對應的名稱時,則顯示用戶識別碼;
-x:將範圍侷限在現行的文件系統中,若指定目錄下的某些子目錄,其存放於另外一個文件系統上,則將該目錄予以排除在尋找範圍外。
這條命令中打印出來的樹結構包含了目錄和文件的大小
1
|
/usr/bin/tree
-shtN
/bakup/data/
$day >>
/var/index
.txt
|
用這條語句把目錄的大小[4.0K]替換掉,出來的結果就是隻顯示文件大小的樹結構。
1
|
/bin/sed
-i
's/\[4\.0K\] //g'
/var/index
.txt
|
你能夠在頁面上顯示出來,也能夠定時郵件發送給運維人員!
1
|
/bin/mail
-s
"備份數據"
"****@qq.com"
<
/var/index
.txt
|