如果想要定期删除服务产生的日志,比如自动打包3天前的日志,启动删除7天前的日志等。可以使用crontab+find的组合命令。
find命令就需要判定文件的时间,有三种-atime,-ctime和-mtime。
先看下三者的区别:
-atime:最后一次读的时间戳;
-mtime:最后一次修改内容的时间戳;
-ctime:最后一次修改文件属性的时间戳,比如文件的owner和group;当然修改内容也会修改ctime。
用-mtime来看看具体的用法
-mtime后面跟一个整数,表示几天前修改过。也有三种:
-mtime n
-mtime -n
-mtime +n
1、-mtime n : n为数字,意思为在n天之前的“一天之内”被更改过内容的文件
2、-mtime +n : 列出在n天之前(不含n天本身)被更改过内容的文件名
3、-mtime -n : 列出在n天之内(含n天本身)被更改过内容的文件名
举例:
将当前目录下24小时内更改过内容
的文件列出
find ./ -mtime 0
将当前目录下5天之内被更改过内容
的文件列出
find ./ -mtime -5
将当前目录下5天前的那一天被更改过内容
的文件列出
find ./ -mtime +5
-exec:-exec选项后边跟着一个所要执行的命令,表示将find出来的文件或目录执行该命令。
exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{},一个空格和一个,最后是一个分号.