【Shell】定期自动删除log或其他指定文件清理磁盘空间

一些软件在长期运行的过程中会产生一些log或info文件,时间久了会占用很多磁盘空间,可以通过shell脚本+crontab定时任务的方式,定期自动清理这些文件以腾出磁盘空间,脚本如下:

#!/bin/bash
find /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

计划任务的设置最好与系统中原存在的计划任务错开一定的时间,避免占用过多的资源或其他冲突,设置计划任务,注意给脚本加权限

原创文章 91 获赞 183 访问量 59万+

猜你喜欢

转载自blog.csdn.net/ywd1992/article/details/89708386