定期清理Smarty的cache文件夾的辦法

定期清理Smarty的cache文件夾的辦法


 很多網站會使用Smarty框架,其緩存機制減少了服務器的壓力的同時提升了響應速度,優化了用戶體驗,是很有用的,但有個問題是其產生的大量緩存文件不會自動清理,這對於訪問量巨大且頁面多的網站是個很要命的事情,因爲產生的大量緩存文件會佔用很大的磁盤空間,如果長期不清理一個是浪費磁盤空間,二是容易不知不覺把服務器空間擠滿了,導致網站掛掉。
 
 有的博客分享的辦法是寫一個檢查緩存文件創建時間的方法,每次初始化Smarty時檢查一下,發現超過某個時間段後就刪除掉,但我覺得這個辦法不大好,因爲每次初始化Smarty時都要檢查文件實在是太浪費資源了,可能會影響響應速度,所以我採用的是通過定時任務,在服務器空閒時清空緩存文件夾的做法。
因爲本身服務器的空間是足夠大的,只要每天清理一次就足夠了,所以使用的是crond的定時器來執行清理任務,代碼如下:

1 5 * * * find /data/release_store/www/*/web/cache/. -name "*" | xargs rm -rf '*'

上述命令在每天凌晨5時1分的時候執行
其它相關說明:
1)文件夾中間爲什麼要使用通配符?www文件夾下有一級文件夾用通配符的原因是我們採用了walle(中文叫瓦力)的發佈系統,在www目錄下很有不同時間發佈的多個文件夾(以便執行版本回滾操作),因爲產生的文件夾名稱是發佈的時間加一些隨機數字,無法提前預知,所以使用了通配符;
2)爲什麼不直執行rm -f命令刪除而是要先使用find命令查找後再刪除?因爲cache目錄會產生大量的小文件,直接使用rm -f命令刪除時會報arguments too long的錯誤,而使用find命令查找後, 使用xargs參數配合時,系統會自動分頁執行,這樣能避免出現arguments too long的錯誤發生,從而能順利將文件夾清空;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章