经常遇到日志文件过多,占用大量磁盘空间,需要定期删除过期日志。
问题涉及方面
- 删除过期日志的脚本。
- 定时任务
删除任务脚本
先查询到过期的日志文件,然后删除。
语法
find path -option [ -print ] [ -exec -ok command ] {} ;
参数说明 :
find 根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部份为 path,之后的是 expression。如果 path 是空字串则使用目前路径,如果 expression 是空字串则使用 -print 为预设 expression。
-name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写 -mtime n 按照文件的更改时间来找文件,n为整数。
- n 表示文件更改时间距离为n天
- -n 表示文件更改时间距离在n天以内
- +n 表示文件更改时间距离在n天以前
实例脚本
删除超过7天的文件
#!/bin/sh
find /home/ant/druid/Apache-druid-0.13.0-incubating/logs -name "peon-*" -mtime +7 -exec rm -rf {} ;
定时任务
crontab -l
查看定时任务列表。
crontab -e
创建定时任务
50 23 * * * /home/ant/druid/delete-outofdate-logs.sh