主頁 > 知識庫 > 設(shè)置自動清理Linux系統(tǒng)中n天前的文件的方法

設(shè)置自動清理Linux系統(tǒng)中n天前的文件的方法

熱門標簽:萊蕪移動外呼系統(tǒng) 柯城手機地圖如何做地圖標注 襄陽地圖標注店 金華呼叫中心外呼系統(tǒng)廠家 高德地圖標注在電腦上 申請400電話流程好嗎 杭州電銷機器人有效果嗎 小語股票電銷機器人 軟件電話機器人

服務(wù)器每周會產(chǎn)生一次全局備份文件,大小約100G左右,需要定期清理。

工作時間網(wǎng)站訪問大,服務(wù)器I/O高的時候刪除大數(shù)據(jù)會對服務(wù)器狀態(tài)產(chǎn)生不好的影響。于是想利用計劃任務(wù)自動執(zhí)行。

在我的備份目錄/bakcup下,每次備份文件均以日期形式命名目錄名:

復制代碼
代碼如下:

# ls

2013-12-23  2014-01-06  2014-01-20  2014-02-03
2013-12-30  2014-01-13  2014-01-27  2014-02-10
刪除部分備份同時保留部分,可以使用find命令,如我要保留最近四周備份的文件,每次備份間隔七天:

復制代碼
代碼如下:

# find /bakcup/ -maxdepth 1 -type d -mtime +28

/bakcup/2014-01-06
/bakcup/2014-01-13
/bakcup/2013-12-23
/bakcup/2013-12-30
-maxdepth 1:設(shè)置查找目錄深度為1,只在/backup目錄下查找,如不加此參數(shù)會將下級目錄中的文件都列出

-type d:設(shè)置查找類型為目錄

-mtime +28:查找28天前的目錄

查找結(jié)束后可用-exec參數(shù)連接刪除命令

復制代碼
代碼如下:

rsync --delete-before -d /data/test/ {} \;

所以,整個命令就是:


復制代碼
代碼如下:

# find /bakcup/ -maxdepth 1 -type d -mtime +28 -exec rsync --delete-before -d /data/test/ {} \;


最后可以把命令放入腳本,設(shè)置crontab自動執(zhí)行。

提醒:

使用命令前,應(yīng)先在服務(wù)器上試用查找部分的命令,如只查找出要清理的目錄,則可以繼續(xù)。

不排除某些系統(tǒng)會將./目錄查找出來,一定要看清楚,防止出現(xiàn)意外情況。

另外可將-exec替換為-ok,效果相同,在刪除前提醒用戶確認。

PS:rm命令與rsync命令的效率比較
rm
rm命令大量調(diào)用了lstat64和unlink,可以推測刪除每個文件前都從文件系統(tǒng)中做過一次lstat操作。
lstat64的次數(shù)低于文件總數(shù),還有另外的原因,之后會在另一篇文章中說明。
getdirentries64這個調(diào)用比較關(guān)鍵。
過程:正式刪除工作的第一階段,需要通過getdirentries64調(diào)用,分批讀取目錄(每次大約為4K),在內(nèi)存中建立rm的文件列表;第二階段,lstat64確定所有文件的狀態(tài);第三階段,通過unlink執(zhí)行實際刪除。這三個階段都有比較多的系統(tǒng)調(diào)用和文件系統(tǒng)操作。
rsync
rsync所做的系統(tǒng)調(diào)用很少。
沒有針對單個文件做lstat和unlink操作。
命令執(zhí)行前期,rsync開啟了一片共享內(nèi)存,通過mmap方式加載目錄信息。
只做目錄同步,不需要針對單個文件做unlink。
另外,在其他人的評測里,rm的上下文切換比較多,會造成System CPU占用較多——對于文件系統(tǒng)的操作,簡單增加并發(fā)數(shù)并不總能提升操作速度。

標簽:鶴壁 威海 景德鎮(zhèn) 欽州 天門 黔南 海北 河南

巨人網(wǎng)絡(luò)通訊聲明:本文標題《設(shè)置自動清理Linux系統(tǒng)中n天前的文件的方法》,本文關(guān)鍵詞  設(shè)置,自動,清理,Linux,系統(tǒng),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《設(shè)置自動清理Linux系統(tǒng)中n天前的文件的方法》相關(guān)的同類信息!
  • 本頁收集關(guān)于設(shè)置自動清理Linux系統(tǒng)中n天前的文件的方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章