Для архивных дисков. Суть - на диск производится некая архивация. Надо избежать переполнения и обеспечить ротацию файлов путём удаления самых старых файлов.
Для этого в скрипте предусмотрена переменная max, в которой задаем максимальный процент использования диска. При достижении этого процента и превышении его в цикле производится удаление самого старого файла. Цикл прекращается как только процент использования диска будет меньше максимального.
Для этого в скрипте предусмотрена переменная max, в которой задаем максимальный процент использования диска. При достижении этого процента и превышении его в цикле производится удаление самого старого файла. Цикл прекращается как только процент использования диска будет меньше максимального.
#!/bin/sh
dsk='/mnt/disk_1G' # target dir
dv='/dev/sdc1' # checked device
max=20 #set max percent
prc=`df --output=source,pcent |grep $dv |awk '{print $2}'|tr -d '%'` # get usage percent
while [[ $prc -ge $max ]]
do
# echo $prc more than $max
file=`find $dsk -type f | xargs stat -c "%Y %n" | sort -n | head -1 | cut -d' ' -f2` # get very old file
# echo $file
rm -f $file # remove file
prc=`df --output=source,pcent |grep $dv |awk '{print $2}'|tr -d '%'` #get usage percent again
done
dsk='/mnt/disk_1G' # target dir
dv='/dev/sdc1' # checked device
max=20 #set max percent
prc=`df --output=source,pcent |grep $dv |awk '{print $2}'|tr -d '%'` # get usage percent
while [[ $prc -ge $max ]]
do
# echo $prc more than $max
file=`find $dsk -type f | xargs stat -c "%Y %n" | sort -n | head -1 | cut -d' ' -f2` # get very old file
# echo $file
rm -f $file # remove file
prc=`df --output=source,pcent |grep $dv |awk '{print $2}'|tr -d '%'` #get usage percent again
done
Комментариев нет:
Отправить комментарий