Приветствую! Есть такой скрипт (из темы: https://www.linux.org.ru/forum/admin/11261088):
#!/bin/sh
#Скрипт удаления старых файлов при переполнении диска
# $1 - доспустимый размер занятого места в процентах, например 90, без знака процентов %
# $2 - точка монтирования, например /mnt/2000gb
# $3 - имя каталога для очистки старых файлов, например /mnt/2000gb/photo
# запускать так sh remove-old.sh 85 /mnt/2000gb /mnt/2000gb/photo
if [ "$#" -eq 3 ]
then
#Определяем переменные из аргуметов переданных скрипту
NOT_MORE_PERCENT=$1
MOUNT_POINT=$2
TARGET_DIRECTORY=$3
#Определяем процент занятого места на диске по точке монтирования этого диска
REAL_PERCENT=$(df -h | grep $MOUNT_POINT | awk '{print $5}' | sed 's/.$//')
#В случае если реальный процент больше или равен заданному значению удаляем лишние файлы
if [ "$REAL_PERCENT" -ge "$NOT_MORE_PERCENT" ]
then
# Т.к. все файлы начинаются с ГГГГ_ММ_ДД сортируем обратной сортировкой, выбираем последнюю строчку,
# выбираем имя файла, отрезаем от имени первых 10 знаков.
cd $TARGET_DIRECTORY
MOST_OLD_DATE=$(ls -1ARrl | tail -n1 | awk '{print $9}' | cut -c1-10 )
#Находим все файлы по имени в нашем каталоге и удаляем, удаляются только файлы!!!
find $TARGET_DIRECTORY -type f -name "$MOST_OLD_DATE*" -delete
#Находим все пустые директории в заданной директории и удаляем
find $TARGET_DIRECTORY -type d -empty -delete
else
#В случае если реальный процент меньше заданного значения ничего не делаем
echo "Еще есть немножко свободного места"
exit 0
fi
else
echo "Количество аргументов должно быть равно 3-м"
echo "Введенное количество аргуметов $#"
exit 1
fi
Проблема в том, что под OpenWRT этот скрипт отрабатывает не полностью из-за неподдерживаемых опций (find)
-empty -delete
ls -1ARrl | tail -n1 | awk '{print $9}' | cut -c1-10
Camera1_01_20170614163652.mp4