Bash之定時備份歸檔檢驗並刪除
阿新 • • 發佈:2017-06-28
bash自動指定日備份檢驗
一、介紹
生產線上有一臺bi ftp服務器(用來接受遊戲的數據),每個遊戲按指定格式上傳到以年月日的目錄中,如:20170628 這樣的目錄,每天一個目錄,因此數據日積月累導致inode和磁盤空間不斷的被消耗,另外有的項目下線,因此這些都需要把這些數據打包歸檔起來以節省空間;
二、解決方案
使用Bash寫了一個小工具只需要填寫指定目錄,多長日期之前的 兩項運行工具,即可對指定目錄下指定時間以前的數據進行打包,並在檢驗打包好後,刪除原備份目錄。以下是代碼:
#!/bin/bash rootdir=/data1/games/zgws #需要歸檔整理的目錄 declare -i Ago=20170301 #指定日期前 cd $rootdir for d in $(ls): do if [ ! -d $d ]; then continue else set -i $d if [ $d -le $Ago ] then echo $d tar czvf ${d}.tar.gz $d declare -i tarhow=$(tar tvf ${d}.tar.gz |wc -l) #檢驗歸檔後的文件個數 declare -i srchow=$(ls $d |wc -l) #原目錄中文件個數 let tarhow=($tarhow -1) if [ $tarhow -eq $srchow ] then echo "$d tar OK,$d has $srchow files,and belong tared has $tarhow ,time at: $(date +%F-%H-%M-%S)" >>tarlog.log #保存檢驗日誌 rm -r $d else echo "$d tar failed!" break fi fi fi done
三、使用中用到的問題
可以修改做成定期去執行,主要就是日期問題,但不建議,另外主要是通過目錄統一“年月日”格式,其他的不行,要歸檔的目錄中不可以有隱藏文件及.開頭的文件,否則會產生檢驗不通過。
本程序僅供參考,和個人備忘,如有不當之處歡迎指正!
本文出自 “學地止境” 博客,請務必保留此出處http://dyc2005.blog.51cto.com/270872/1942717
Bash之定時備份歸檔檢驗並刪除