Linux使用定时任务每周定时清理45天以前日志
在Linux系统中,管理和清理日志文件是一项重要的维护工作,特别是对于那些每天产生大量日志数据的服务器。本文介绍了一种方法,通过编写shell脚本并结合cron定时任务,实现每周定时清理45天以前的日志,从而有效地管理硬盘空间。 我们需要创建一个名为`delOldLogs.sh`的脚本,它的作用是查找并删除指定路径下45天前的日志文件。脚本内容如下: ```bash #!/bin/sh # 删除输入路径下的修改时间在45天以前的日志文件 find $1 -mtime +45 -name "*log*" -exec rm -f {} \; ``` 这个脚本接受一个参数,即待清理日志的路径,使用`find`命令查找该路径下修改时间超过45天的日志文件,并通过`-exec`选项与`rm -f`命令结合,删除这些文件。`-f`选项强制删除,即使文件是只读的也会尝试删除。 接下来,创建一个名为`del_all_OldLogs.sh`的主脚本,它调用`delOldLogs.sh`来清理多个路径下的日志: ```bash #!/bin/bash /usr/local/cleanlog/delOldLogs.sh "/home/usr/ewp/logs" /usr/local/cleanlog/delOldLogs.sh "/home/usr/h5/logs" /usr/local/cleanlog/delOldLogs.sh "/home/usr/Payment/logs" ``` 这个脚本依次执行`delOldLogs.sh`,清理指定的三个目录下的日志。 为确保脚本可执行,需使用`chmod`命令赋予执行权限: ```bash [root@prx01 cleanlog]# chmod a+x /usr/local/cleanlog/del*.sh ``` 然后,我们需要将这个清理过程添加到cron定时任务中,以确保每周六的0:10自动运行。打开root用户的crontab配置文件: ```bash [root@prx01 cron]# vim /var/spool/cron/root ``` 在文件末尾添加以下行: ``` 10 0 * * 6 /usr/local/cleanlog/del_all_OldLogs.sh ``` 这行表示在每周六的0:10执行`del_all_OldLogs.sh`脚本。 可以使用`crontab -l`命令检查定时任务列表,确认`del_all_OldLogs.sh`已正确设置。 通过以上步骤,我们就成功地设置了Linux系统的定时任务,每周会自动清理指定目录下的45天前日志文件。这种方法有助于保持系统的整洁,避免日志文件占用过多磁盘空间。同时,也提供了一种灵活的方式,可以根据需要调整清理的频率或路径。对于系统维护人员来说,定期清理无用日志不仅有助于优化存储资源,还可以提高系统性能,防止因日志堆积导致的问题。
- 粉丝: 3
- 资源: 879
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助