Linux创建定时删除日志任务

Posted on 2022-11-24 13:27  brad1208  阅读(1760)  评论(0编辑  收藏  举报

定时删除3天前的所有日志文件:

1、例:脚本对应的要删除的目录为/home/logs
在home目录创建文件clearLogFiles.sh:
cd /home
vim clearLogFiles.sh
写入脚本内容
(type f 表示值删文件,不删文件夹)
(-mtime +2 表示更新时间为3天前)
(| xargs 不能查到名字有空格的文件)

#!/bin/bash
find /home/logs/ -type f -mtime +2 | xargs rm -f

如果日志后缀都为.log,则按照名字删除
#!/bin/bash
find /app/logs/ -name "*.log" -mtime +2 | xargs rm -f

如果日志名称有空格,则使用-exec
#!/bin/bash
find /home/backups -mtime +2 -name "*.*" -exec rm -rf {} \;

 

Linux 自动删除N小时或分钟前的文件
Linux下自动删除2小时之前的日志文件
find /home/log/ -mmin +120 -name "*.log" -exec rm -rf {} \;
执行完上面的命令后,在/home/log/目录下所有的120分钟或者说2小时以前生成的或者更改过的以.log结尾的日志文件都会被删掉。

如果要删除两小时之内的日志文件,使用下面的命令:
find /home/log/ -mmin -120 -name "*.log" -exec rm -rf {} \;
将上面的find命令加到Linux系统的任务计划crontab里,即可实现自动定时删除文件。


2、为脚本增加可执行权限
chmod +x clearLogFiles.sh

3、编辑定时任务
crontab -e

#设置每天凌晨3点30执行
30 3 * * * sh /home/clearLogFiles.sh

查看定时任务
crontab -l
30 3 * * * sh /home/clearLogFiles.sh

直接执行一次试一试:
/home/clearLogFiles.sh