Bash 自动删除脚本

Bash 自动删除脚本

我正在寻找一个 bash 脚本,当可用空间低于 X GB 时,该脚本会自动删除目录中最旧的文件夹(比如说最后 3 个)。

我已阅读过相关文章,但由于我什么都不知道,所以我不知道如何自己安全地修改脚本。

答案1

您需要定制 PARTITION、DIR_TO_CHECK、LIMIT 和 NUM_DIRS_TO_DELETE、BLOCKSIZE 和 NUM_DIRS_TO_DELETE 以满足您的需要。

LIMIT 是可用的千兆字节数。

请小心,一旦取消注释 rm 命令,它删除的目录就会消失!

#!/bin/bash
IFS=$'\n'

PARTITION="/dev/sdb1"
DIR_TO_CHECK="/home/bryan/temp/*/"
BLOCKSIZE=1000000000 
LIMIT=12
NUM_DIRS_TO_DELETE=4


if [ $(df  -B $BLOCKSIZE  $PARTITION | tail -1 |  awk  '{ print $4}') -gt $LIMIT ]; then
  echo "plenty of space"
else 
   for i in $(ls -d $DIR_TO_CHECK --group-directories-first  -tr | head -$NUM_DIRS_TO_DELETE)
   do

      du -h $i
      # When you are happy that the script does what you want, 
      # delete the above line and remove the # character from the below
      # rm -r $i 
   done
fi

相关内容