Loading

磁盘剩余空间大于80%时,删除某个路径下的文件

使用Shell脚本定期清理包含"202"的目录

简介

使用Shell脚本检查磁盘使用情况,并自动删除路径下包含“202”的目录及其内容,。

实现

创建一个简单的Shell脚本:

  1. 检查磁盘使用情况:使用df命令获取当前磁盘使用率。

  2. 条件判断:如果磁盘使用率超过设定阈值(例如 80%),则执行删除操作。

  3. 使用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

  

使用说明

  1. 将上述脚本保存为 cleanup.sh

  2. 修改 TARGET_PATH 变量为你需要监控的目录路径。

  3. 给予脚本执行权限:

   chmod +x cleanup.sh

  1. 运行脚本:
 
   ./cleanup.sh

注意事项

  • 在删除目录之前,请确保备份重要数据,因为删除操作是不可恢复的。

  • 可以将该脚本设置为定时任务(通过 cron)实现定期自动清理,确保系统及时释放空间。

mark

0 * * * * /home/yourusername/scripts/cleanup.sh

这里的 0 * * * * 表示每小时的第 0 分钟执行任务

posted @ 2024-12-27 16:03  夷某蓁  阅读(197)  评论(1)    收藏  举报