shell清理日志,通过mtime筛选文件时间

154 阅读1分钟

场景:每月定时清理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

echo 'log cleaning begin : 'date +%F_%T

dir='/home/user1' files=find $dir -mtime +30 |xargs -l echo "" echo "----------(date"+forfilein(date "+%Y-%m-%d %H:%M:%S")-----------" for file in files do if [ -f "file"]thenechofile" ] then echo file fi done

echo 'log cleaning end : 'date +%F_%T

ctime---change time,改变文件用户、权限等属性的时间

mtime ---modify time,改变文件内容的时间

atime --- access time ,访问文件的时间

通过crontab设置

*/1 * * * * nohup sh /root/tmp.sh >> /root/tmp.log