我的日志目录包含以下文件
access.log
defaultAuditrecorder20110901.log(这是第31个jun生成的日志文件)
defaultAuditrecorder20110901.log(这是第一个8月生成的日志文件)
defaultAuditrecorder20110902.log(这是第二次生成的第二个日志文件)
defaultAuditrecorder.log(这是currentdey正在运行的日志文件)
mng1.log001
mng1.log002
mng1.log003 ..............等......
我的要求是使用shell脚本我需要仅删除除当前和前一天之外的defaultauditrecord日志文件。
答案 0 :(得分:4)
答案 1 :(得分:2)
最简单的机制是使用find命令。
find /var/log -mtime +2d -a -type f -print
这将找到2天前修改过的所有文件。要将其链接到删除命令,您可以使用:
find /var/log -mtime +2d -a -type f -print0 | xargs -0 rm
在本例中,我使用/ var / log,您将替换包含日志的目录。使用-print0和xargs -0的原因是,如果文件包含空格,则rm命令无法正确处理它。