日期:2014-05-16  浏览次数:20616 次

unix定期删除日期格式文件夹的脚本问题
有一个软件生成的日志文件是这样的格式:
/log/2012/01/02/log
/log/2012/01/03/log
/log/2012/01/04/log
说明:日志的文件夹是以时间的年、月、日命名的。

日志不能自动删除,磁盘空间小,只能使用脚本做旧日志删除,比如每天0:00删除180天前的日志。
想写一个脚本一直运行,限于本人水平有限,有会的朋友帮帮忙,感激不尽。

------解决方案--------------------
[liangdong@bb-browser-test00.vm.baidu.com c_project]$ echo "/log/2012/01/02/log" | sed -r 's/\/log\/|\/log//g'
2012/01/02
上面是输出2012/01/02

下面是将上面的输出的2012/01/02转到UNIX时间戳
date -d "2012/01/02" +"%s"

date +"%s"是获取现在的UNIX时间戳,剩下的就是expr想减看180了
------解决方案--------------------
删除命令。
$ rm `date -d "-180 days" +"/log/"%Y/%m/%d"/log"`

每天0:00执行,可以写到crontab当中。
------解决方案--------------------
探讨

引用:
删除命令。
$ rm `date -d "-180 days" +"/log/"%Y/%m/%d"/log"`

每天0:00执行,可以写到crontab当中。


这个只是删掉了具体的某一天的,怎么样才能把180天前的所有文件包括目录都删掉呢

------解决方案--------------------
$ rm -rf `date -d "-180 days" +"/log/"%Y/%m/%d""`