运行某些自动存储图片或视频的任务时,可能会遇到磁盘空间被存满而导致无法进入系统的情况,所以可以写一个脚本定时获取磁盘剩余容量,并清理指定文件夹下最老的文件。
1.autodel.sh
#!/bin/sh
#获取当前时间格式化输出
date_time=$(date +"%Y%m%d-%H%M%S")
#获取指定文件夹下时间最早的文件
filename_d=$(find /path/to/del -type f | sort | head -n 1)
#获取磁盘剩余容量,grep 234g:筛选总容量为234G的那个磁盘,也可以根据别的条件筛选
#grep -v grep:去除grep,awk '{print $4}':打印第四列的数据,tr -d "G":去除G
nowSize=`df -h | grep 234G | grep -v grep | awk '{print $4}' | tr -d "G"`
#如果小于60G,-lt是左值小于右值,-gt是相反
if [ $nowSize -lt 60 ]; then
echo "$date_time, cursize: $nowSize, delete files: $filename_d" >> /path/autodel_log.txt && rm $filename_d;
else
echo "$date_time, cursize: $nowSize, do nothing" >> /home/zk/autodel_log.txt;
fi
2.crontab -e 定时任务激活
第一步: 初始化crontab
第一次激活需要执行 crontab -e 即可激活
第二步: 配置定时任务
执行 crontab -e , 在最后一行加上0 * * * * /path/auto_del.sh, 一个小时执行一次
或者0 7 * * * bash /path/auto_del.sh,每天七点执行一次
解释: 分钟 小时 天 月 周 执行的命令或者脚本
第三步: 查看cron状态
service cron status 是active的状态即成功
重启service restart cron
停止service stop cron
部分内容参考一下博主:
版权声明:本文为CSDN博主「千年恨」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_29176323/article/details/126898872