一些软件在长期运行的过程中会产生一些log或info文件,时间久了会占用很多磁盘空间,可以通过shell脚本+crontab定时任务的方式,定期自动清理这些文件以腾出磁盘空间,脚本如下:
#!/bin/bashfind /log/test_logs/ -mtime +10 -type f -name "*.log" | xargs rm -f
1、脚本说明:
find /log/test_logs/
需要操作的目录
-mtime +10
只保留最近十天,或者操作针对于十天之前的文件,在这就是删除十天之前的文件
-type f
指定操作类型为文件,文件为f,目录为d
-name “*.log”
指定操作的文件是什么,在这里我们仅操作指定目录下以.log结尾的文件,根据具体的需求修改
xargs rm -f
做删除操作
脚本运行之前:
脚本运行之后:
可以看到,符合要求的10天之前的以.log结尾的文件都会被清理掉,其他文件因为不满足时间限制或者不满足文件名限制,都不会被删掉
2、设置计划任务
脚本写好之后,最好直接设置为计划任务,由系统定期自动执行,如,在每天晚上的1:00自动执行清理脚本
00 01 * * * /root/log_clean.sh
计划任务的设置最好与系统中原存在的计划任务错开一定的时间,避免占用过多的资源或其他冲突,设置计划任务,注意给脚本加权限