濮阳杆衣贸易有限公司

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

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

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

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

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

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

復(fù)制代碼
代碼如下:

# 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
刪除部分備份同時(shí)保留部分,可以使用find命令,如我要保留最近四周備份的文件,每次備份間隔七天:

復(fù)制代碼
代碼如下:

# 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ù)會(huì)將下級(jí)目錄中的文件都列出

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

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

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

復(fù)制代碼
代碼如下:

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

所以,整個(gè)命令就是:


復(fù)制代碼
代碼如下:

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


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

提醒:

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

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

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

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

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

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《設(shè)置自動(dòng)清理Linux系統(tǒng)中n天前的文件的方法》,本文關(guān)鍵詞  設(shè)置,自動(dòng),清理,Linux,系統(tǒng),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《設(shè)置自動(dòng)清理Linux系統(tǒng)中n天前的文件的方法》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于設(shè)置自動(dòng)清理Linux系統(tǒng)中n天前的文件的方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    巩留县| 长寿区| 禄劝| 凌海市| 平乐县| 长沙县| 芜湖市| 闸北区| 蒲城县| 兴文县| 中阳县| 文化| 翁源县| 宜州市| 北宁市| 高阳县| 甘孜县| 宣城市| 黄冈市| 策勒县| 龙海市| 资中县| 波密县| 阿荣旗| 六安市| 湖南省| 建阳市| 陆河县| 磴口县| 新疆| 碌曲县| 洛隆县| 富源县| 西平县| 香港| 峨边| 洛宁县| 江华| 石楼县| 漳州市| 慈溪市|