当磁盘空间不足时,是否有一种智能方法可以执行脚本?我知道我可以手动检查磁盘空间,但当磁盘空间不足时(例如)想要删除日志文件似乎是一个常见问题,而这正是我想要做的。
答案1
您可以使用df
单行 shell 脚本。
首先,我们需要告诉df
仅打印使用的百分比:
df / --output='pcent'
将其与 grep 结合以仅获取数字:
df / --output='pcent' | grep -o "[0-9]*"
如果磁盘已填充 55%,则将得出例如“55”。
现在在 crontab 中,我们可以像这样使用它:
@daily sh -c "if [ $(df / --output='pcent' | grep -o "[0-9]*") -gt 90 ]; then docker system prune -af; fi
在此示例中,docker system prune -af
如果磁盘已满 90% 以上,我们将运行。根据需要进行调整。
答案2
如果您不是特别关心您的日志文件,您可以在 cron 中放置一个脚本来检查磁盘空间。
自动清除旧日志就是logrotate
为了这个目的。