定时删除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
标签:log,删除,clearLogFiles,sh,Linux,home,日志,定时 From: https://www.cnblogs.com/brad93/p/16921579.html