使用 shell 自动释放磁盘空间

拈花ヽ惹草 提交于 2020-04-06 22:44:23

有一台测试机上面部署了 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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!