本發(fā)明涉及服務(wù)器系統(tǒng)維護(hù)技術(shù)領(lǐng)域,具體提供一種清理過(guò)期文件的方法。
背景技術(shù):
對(duì)于服務(wù)器的運(yùn)行日志、程序運(yùn)算生成的臨時(shí)文件、下載或運(yùn)行所生成的緩存文件、以及數(shù)據(jù)備份和快照等文件,隨著業(yè)務(wù)運(yùn)營(yíng)時(shí)間的推移,這類文件往往會(huì)越積攢越多。雖然上述文件自身可能會(huì)有定期清除的功能,但在過(guò)期文件清除時(shí),也有可能會(huì)因?yàn)槲募宄《鴮?dǎo)致出現(xiàn)殘留的垃圾文件。甚至有些文件并沒(méi)有主動(dòng)的定期清除功能,而需要運(yùn)維人員定期維護(hù)或者編寫一定的清理腳本來(lái)定期執(zhí)行,這樣會(huì)增加運(yùn)營(yíng)成本。
有些臨時(shí)或緩存文件的增加過(guò)程是非線性的,即增加的速度、增加的文件數(shù)量和每個(gè)文件的大小都無(wú)法確定,在這些情況下,編寫清理腳本有一定的復(fù)雜度。例如視頻轉(zhuǎn)碼加工服務(wù)器的臨時(shí)文件、cdn邊緣節(jié)點(diǎn)的緩存文件等,運(yùn)算服務(wù)器生成的運(yùn)算臨時(shí)文件,這些文件生成的速率、大小、數(shù)量都跟業(yè)務(wù)的繁忙度有關(guān),業(yè)務(wù)繁忙的時(shí)候生成的臨時(shí)和緩存文件總速率會(huì)增高,相反,業(yè)務(wù)空閑時(shí)文件生成總速率會(huì)降低。因此簡(jiǎn)單的根據(jù)日期和時(shí)間進(jìn)行清理的腳本很難把控,給過(guò)期文件的清理工作帶來(lái)困難,因而不能有效的保證服務(wù)器的工作分區(qū)有足夠的運(yùn)行空間。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的技術(shù)任務(wù)是針對(duì)上述存在的問(wèn)題,提供一種保證服務(wù)器的工作分區(qū)能始終保持有足夠的運(yùn)行空間,盡可能多的保存下有用的文件,同時(shí)能夠簡(jiǎn)化運(yùn)維人員的定期檢查、跟進(jìn)、處理等工作的清理過(guò)期文件的方法。
為實(shí)現(xiàn)上述目的,本發(fā)明提供了如下技術(shù)方案:
一種清理過(guò)期文件的方法,所述方法根據(jù)工作分區(qū)剩余空間及文件修改時(shí)間來(lái)清理過(guò)期文件;指定要監(jiān)控并清理過(guò)期文件的路徑,設(shè)置時(shí)間間隔來(lái)掃描指定工作分區(qū)的空間占用百分比,若工作分區(qū)的空間占用百分比超過(guò)閥值百分比,則遍歷工作目錄中的所有文件,將文件修改時(shí)間早于過(guò)期門限日期的文件刪除,完成一次遍歷后,重新統(tǒng)計(jì)工作分區(qū)的空間占用百分比,若重新統(tǒng)計(jì)后的工作分區(qū)的空間占用百分比低于閥值百分比,則清除完成,若重新統(tǒng)計(jì)后的工作分區(qū)的空間占用百分比高于閥值百分比,則延后過(guò)期門限日期,使用新的過(guò)期門限日期遍歷工作目錄中的所有文件,來(lái)清除過(guò)期文件,直至工作分區(qū)的空間占用百分比低于閥值百分比。
本發(fā)明所述的方法適用于windows和linux服務(wù)器的常見(jiàn)操作系統(tǒng)。
在延后過(guò)期門限日期時(shí),應(yīng)按照百分比逐步延后。若過(guò)期門限日期距今遙遠(yuǎn),延后的幅度應(yīng)提高,若過(guò)期門限日期距今較近,延后的幅度應(yīng)減小。
作為優(yōu)選,所述方法具體包括以下步驟:
s1:指定要監(jiān)控并清理過(guò)期文件的路徑,設(shè)該路徑為p;
s2:設(shè)置一個(gè)指定時(shí)間間隔的定時(shí)器,設(shè)掃描時(shí)間間隔為v,掃描指定工作分區(qū)的空間占用百分比;
s3:當(dāng)前工作分區(qū)的空間占用百分比記為n,若n超過(guò)閥值百分比x,則執(zhí)行步驟s4,否則執(zhí)行步驟s2;
s4:遍歷路徑p中的所有文件,將修改時(shí)間早于過(guò)期門限日期d的文件刪除;
s5:判斷是否遍歷完所有文件,若是則執(zhí)行步驟s6,否則執(zhí)行步驟s4;
s6:重新計(jì)算工作分區(qū)的空間占用百分比n’,若n’超過(guò)閥值百分比x,則執(zhí)行步驟s7,否則執(zhí)行步驟s2;
s7:將過(guò)期門限日期d延后一定幅度為新的過(guò)期門限日期d’,并執(zhí)行步驟s4。
步驟s1中,路徑p設(shè)置值如:d:\workspace\或者/data/workspace/。
作為優(yōu)選,步驟s2中,時(shí)間間隔v的數(shù)值取決于工作分區(qū)文件的增長(zhǎng)速度。
若工作分區(qū)文件增長(zhǎng)速度較快,經(jīng)常會(huì)導(dǎo)致工作分區(qū)空間不足,則時(shí)間間隔v應(yīng)設(shè)置的時(shí)間較短,比如一分鐘。若工作分區(qū)文件增長(zhǎng)速度緩慢,清理一次后,數(shù)天之后才會(huì)有明顯的增加量,則時(shí)間間隔v可以設(shè)置的較長(zhǎng),比如一小時(shí),甚至一天。當(dāng)時(shí)間間隔v設(shè)置較長(zhǎng),且閥值百分比x設(shè)置過(guò)大時(shí),可能導(dǎo)致工作分區(qū)空間占滿而無(wú)法及時(shí)觸發(fā)任務(wù),當(dāng)閥值x設(shè)置過(guò)小時(shí),會(huì)造成工作分區(qū)空間浪費(fèi)。
作為優(yōu)選,步驟s7中,設(shè)過(guò)期門限日期d距今的時(shí)間差為:t=now-d,將時(shí)間差t縮短一定幅度后變?yōu)閠’=t*(1-r%),其中,r%為延后百分比,新的過(guò)期門限日期d’=d+t’。
執(zhí)行一次過(guò)期清理操作后,仍存在無(wú)法有效刪除的文件時(shí),會(huì)縮短過(guò)期門限日期距今的時(shí)間差,需要設(shè)定時(shí)間差縮短的幅度,或者說(shuō)設(shè)定延后百分比r%。延后百分比r%越大,過(guò)期文件的掃描精細(xì)度就越粗略,不利于精確的過(guò)期文件定位;延后百分比r%越小,過(guò)期文件的掃描精度會(huì)提高,但會(huì)額外消耗計(jì)算量。本發(fā)明中延后百分比r%的取值在10%~30%。
作為優(yōu)選,所述新的過(guò)期門限日期d’作為下次清理文件的初始依據(jù)。
過(guò)期門限日期d是動(dòng)態(tài)變化的,該值首次被使用時(shí),需要進(jìn)行初始化,該初始過(guò)期門限日期可以是一年甚至數(shù)年之前的日期,該數(shù)值設(shè)置的過(guò)早,僅會(huì)造成首次清理任務(wù)時(shí)增加計(jì)算量,對(duì)之后的任務(wù)并不會(huì)增加計(jì)算量。
與現(xiàn)有技術(shù)相比,本發(fā)明的清理過(guò)期文件的方法具有以下突出的有益效果:所述清理過(guò)期文件的方法,根據(jù)工作分區(qū)剩余空間及文件使用修改時(shí)間,進(jìn)行智能清理,可以保證服務(wù)器的工作分區(qū)能始終保持有足夠的運(yùn)行空間,并且盡可能多的保存下有用的文件,同時(shí)該方法還能夠簡(jiǎn)化運(yùn)維人員對(duì)過(guò)期文件的定期檢查、跟進(jìn)、處理等工作,具有良好的推廣應(yīng)用價(jià)值。
附圖說(shuō)明
圖1是本發(fā)明所述清理過(guò)期文件的方法的流程圖。
具體實(shí)施方式
下面將結(jié)合附圖和實(shí)施例,對(duì)本發(fā)明的清理過(guò)期文件的方法作進(jìn)一步詳細(xì)說(shuō)明。
實(shí)施例
本發(fā)明的清理過(guò)期文件的方法,根據(jù)工作分區(qū)剩余空間及文件修改時(shí)間來(lái)清理過(guò)期文件,該方法適用于windows和linux服務(wù)器的常見(jiàn)操作系統(tǒng)。
首先指定要監(jiān)控并清理過(guò)期文件的路徑,設(shè)置時(shí)間間隔來(lái)掃描指定工作分區(qū)的空間占用百分比,若工作分區(qū)的空間占用百分比超過(guò)閥值百分比,則遍歷工作目錄中的所有文件,將文件修改時(shí)間早于過(guò)期門限日期的文件刪除。完成一次遍歷后,重新統(tǒng)計(jì)工作分區(qū)的空間占用百分比,若重新統(tǒng)計(jì)后的工作分區(qū)的空間占用百分比低于閥值百分比,則清除完成,若重新統(tǒng)計(jì)后的工作分區(qū)的空間占用百分比高于閥值百分比,則延后過(guò)期門限日期,使用新的過(guò)期門限日期遍歷工作目錄中的所有文件,來(lái)清除過(guò)期文件,直至工作分區(qū)的空間占用百分比低于閥值百分比。
如圖1所示,該清理過(guò)期文件的方法具體包括以下步驟:
s1:指定要監(jiān)控并清理過(guò)期文件的路徑,設(shè)該路徑為p。
本實(shí)施例中,路徑p的設(shè)置值如:d:\workspace\或者/data/workspace/。
s2:設(shè)置一個(gè)指定時(shí)間間隔的定時(shí)器,設(shè)時(shí)間間隔為v,掃描指定工作分區(qū)的空間占用百分比。
時(shí)間間隔v的數(shù)值取決于工作分區(qū)文件的增長(zhǎng)速度,若工作分區(qū)文件增長(zhǎng)速度較快,經(jīng)常會(huì)導(dǎo)致工作分區(qū)空間不足,則時(shí)間間隔v應(yīng)設(shè)置的時(shí)間較短,比如一分鐘。若工作分區(qū)文件增長(zhǎng)速度緩慢,清理一次后,數(shù)天之后才會(huì)有明顯的增加量,則時(shí)間間隔v可以設(shè)置的較長(zhǎng),比如一小時(shí),甚至一天。
s3:當(dāng)前工作分區(qū)的空間占用百分比記為n,若n超過(guò)閥值百分比x,則執(zhí)行步驟s4,否則執(zhí)行步驟s2。
s4:遍歷路徑p中的所有文件,將修改時(shí)間早于過(guò)期門限日期d的文件刪除。
s5:判斷是否遍歷完所有文件,若是則執(zhí)行步驟s6,否則執(zhí)行步驟s4。
s6:重新計(jì)算工作分區(qū)的空間占用百分比n’,若n’超過(guò)閥值百分比x,則執(zhí)行步驟s7,否則執(zhí)行步驟s2。
s7:將過(guò)期門限日期d延后一定幅度為新的過(guò)期門限日期d’,并執(zhí)行步驟s4。
在執(zhí)行一次過(guò)期清理操作后,但無(wú)法有效刪除文件時(shí),會(huì)縮短過(guò)期門限距今的時(shí)間差,設(shè)過(guò)期門限日期d距今的時(shí)間差為:t=now-d,將時(shí)間差t縮短一定幅度后變?yōu)閠’=t*(1-r%),其中,r%為延后百分比,本發(fā)明中延后百分比r%的取值在10%~30%。新的過(guò)期門限日期d’=d+t’。
使用新的過(guò)期門限日期d’進(jìn)行新一輪的遍歷刪除,可以進(jìn)一步清理過(guò)期的文件,從而提高文件清理成功的可能性。在遍歷刪除后,且工作分區(qū)的空間占用百分比低于閥值百分比,則需要記錄下當(dāng)前的門限日期d’,該門限日期d’將成為下次清理文件的初始依據(jù)。
執(zhí)行一次過(guò)期清理操作后,能夠有效刪除文件,且工作分區(qū)的空間占用百分比低于閥值百分比x,則本次清楚任務(wù)完成。
以上所述的實(shí)施例,只是本發(fā)明較優(yōu)選的具體實(shí)施方式,本領(lǐng)域的技術(shù)人員在本發(fā)明技術(shù)方案范圍內(nèi)進(jìn)行的通常變化和替換都應(yīng)包含在本發(fā)明的保護(hù)范圍內(nèi)。