有一台测试机上面部署了 Web 服务,很多人代码会打 debug 日志。机器磁盘有限,需要自动去清理历史的日志。
脚本
#clean_trash.sh
#!/usr/bin/env bash
df > disk.dat
remain=`sed -n "3, 1p" disk.dat | awk 'END{print $4}'`
if [[ $remain -lt 2000000 ]];then
echo "Space No Left: $remain"
find /home/qspace/log/info/ -cmin +120 -name "*" -exec rm -rf {} \;
find /home/qspace/log/error/ -cmin +120 -name "*" -exec rm -rf {} \;
find /home/qspace/upload/ -type f -size +100M -exec rm -rf {} \;
else
echo "Space OK: $remain"
fi
使用 df 去检查磁盘空间,一旦磁盘剩余空间小于 2G,将 log 和 error 中 2 小时前的日志删除。另外,也删除上传目录中大于 100 M 的 文件。
配置 crontab
crontab 是 linux 自带的定时任务管理器,将上述脚本配置为每十分钟执行一次
*/10 * * * * /home/myhome/clean_trash.sh >/dev/null 2>&1
来源:oschina
链接:https://my.oschina.net/u/1420197/blog/811828