本文共 1413 字,大约阅读时间需要 4 分钟。
为实现对旧日志文件的自动清理,可以通过以下步骤构建一个自动化脚本:
#!/bin/bash# 找到指定目录下 older than N 天的日志文件并删除它们find /usr/local/tomcat/logs/ -mtime +7 -type f -name "*.log*" -exec rm -rf {} \;
脚本说明:
- `find`:用于在文件系统中查找符合条件的文件。 - `/usr/local/tomcat/logs/`:指定要清理的日志目录。 - `-mtime +7`:表示查找 older than 7 天的文件(注意:-mtime表示更改时间,推荐使用`-atime`或`-dmin`来计算访问时间)。 - `-type f`:限定查找的是文件。 - `-name "*.log*"`:匹配以`.log"`结尾的文件,`*`表示任意字符,`?`表示匹配一个字符。 - `-exec rm -rf {} \;`:执行删除命令,`{}`表示匹配到的文件名,`\;`是批处理命令的结束符。示例:
```bash# 删除 /usr/local/tomcat/logs/ 目录下 older than 7 天的日志文件find /usr/local/tomcat/logs/ -mtime +7 -name "*.log" -exec rm -rf {} \;```为了实现日志文件的自动清理,可以将脚本设定为定时任务:
chmod +x del-log.sh
cron
,请安装:yum install -y vixie-cron
crontab
命令编辑或添加新任务:crontab -e*/1 * * * * /usr/local/xiao_sh/auto-del-log.sh >> /dev/null 2>&1
crontab -e0 1 * * * /usr/local/xiao_sh/auto-del-log.sh >> /dev/null 2>&1
对 cron 服务命令有更详细的控制方式:
crontab -u user_name
crontab -l
crontab -r
crontab -e
tail -f /var/log/cron
通过 systemctl 管理 cron 服务:
bin/systemctl start crond
bin/systemctl stop crond
bin/systemctl restart crond
bin/systemctl reload crond
bin/systemctl status crond
建议将 cron 设为开机启动:
```bashvi /etc/rc.local/bin/systemctl start crond.service```转载地址:http://sqrvz.baihongyu.com/