定期清理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的错误发生,从而能顺利将文件夹清空;

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