当前位置: 技术问答>linux和unix
unix定期删除日期格式文件夹的脚本问题
来源: 互联网 发布时间:2017-03-07
本文导语: 有一个软件生成的日志文件是这样的格式: /log/2012/01/02/log /log/2012/01/03/log /log/2012/01/04/log 说明:日志的文件夹是以时间的年、月、日命名的。 日志不能自动删除,磁盘空间小,只能使用脚本做旧日志删除,比如每天...
有一个软件生成的日志文件是这样的格式:
/log/2012/01/02/log
/log/2012/01/03/log
/log/2012/01/04/log
说明:日志的文件夹是以时间的年、月、日命名的。
日志不能自动删除,磁盘空间小,只能使用脚本做旧日志删除,比如每天0:00删除180天前的日志。
想写一个脚本一直运行,限于本人水平有限,有会的朋友帮帮忙,感激不尽。
/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了
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""`