场景:每月定时清理linux服务器上的日志,根据mtime来筛选文件。
find path -mtime +7 -name "gz"
find ./ -name “*data*” -mtime +1 当前目录下文件名包含data,而且修改时间在48小时以上的
find ./ -name “*date*” -mtime +2 当前目录下文件名包含data,而且修改时间在72小时以上的
find ./name “*data*” -mtime -1 当前目录下文件名包含data,而且修改时间在24小时以内的
find ./name “*data*” -mtime -2 当前目录下文件名包含data,而且修改时间在48小时以内的
find ./name “*data*” -mtine 1 当前目录下文件名包含data,而且修改时间在1天前当天的,也就是24小时以上,48小时以内
脚本如下,清理/home/wjz/dirs目录下,30天以上的文件
- #!/bin/bash
-
- dir='/home/user1'
- files=`find $dir -mtime +30 |xargs -l`
- echo ""
- echo "----------$(date "+%Y-%m-%d %H:%M:%S")-----------"
- for file in $files
- do
- if [ -f "$file" ]
- then
- echo $file
- fi
- done
ctime---change time,改变文件用户、权限等属性的时间
mtime ---modify time,改变文件内容的时间
atime --- access time ,访问文件的时间
通过crontab设置
*/1 * * * * nohup sh /root/tmp.sh >> /root/tmp.log
有关crontab的时间设置详见这篇文章: