磁盘剩余空间大于80%时,删除某个路径下的文件
使用Shell脚本定期清理包含"202"的目录
简介
使用Shell脚本检查磁盘使用情况,并自动删除路径下包含“202”的目录及其内容,。
实现
创建一个简单的Shell脚本:
-
检查磁盘使用情况:使用
df命令获取当前磁盘使用率。 -
条件判断:如果磁盘使用率超过设定阈值(例如 80%),则执行删除操作。
-
使用find命令:查找路径下所有名称包含“202”的目录,并删除它们及其内容。
脚本代码
以下是完整的Shell脚本代码:
#!/bin/bash
# 设置要监控的路径
TARGET_PATH="/path/to/your/directory"
# 获取当前的磁盘使用百分比
USAGE=$(df -h "$TARGET_PATH" | awk 'NR==2 {print $5}' | sed 's/%//g')
# 设置阈值
THRESHOLD=80
# 检查磁盘使用情况
if [ "$USAGE" -gt "$THRESHOLD" ]; then
echo "磁盘使用率为 ${USAGE}%,超过阈值 ${THRESHOLD}%。正在删除 ${TARGET_PATH} 下包含 '202' 的目录及其内容。"
# 查找并删除包含 '202' 的目录
find "$TARGET_PATH" -type d -name '*202*' -exec rm -rf {} +
# 查找并删除包含 '202' 的目录但排除某个目录如app
find "$TARGET_PATH" -depth -type d -name '*202*' -not -path "*/app/*"
# 查询文件不查目录,delete比
find "$TARGET_PATH" -type f -name '*202*' -delete
else
echo "磁盘使用率为 ${USAGE}%,未超过阈值 ${THRESHOLD}%。不进行删除。"
fi
使用说明
-
将上述脚本保存为
cleanup.sh。 -
修改
TARGET_PATH变量为你需要监控的目录路径。 -
给予脚本执行权限:
chmod +x cleanup.sh
- 运行脚本:
./cleanup.sh
注意事项
-
在删除目录之前,请确保备份重要数据,因为删除操作是不可恢复的。
-
可以将该脚本设置为定时任务(通过
cron)实现定期自动清理,确保系统及时释放空间。
mark
0 * * * * /home/yourusername/scripts/cleanup.sh
这里的 0 * * * * 表示每小时的第 0 分钟执行任务

浙公网安备 33010602011771号