Представляю скрипт на bash для вычисления свободного места на жестком диске сервера Linux. В случае если свободное пространство подходит к концу - мы получаем уведомление на почту.
Второй вариант скрипта, где задается определенный лимит на папку с бэкапами, при достижении которого, удаляются самые старые бэкапы:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#!/bin/bash # Задаем переменную, в которой вычисляем размер папки с бекапом spacebackup=`du -sm /home/data/backup/ | awk '{print$1}'` # Если папка с бекапом занимает больше 22000 Мб if [ $spacebackup -gt 22000 ]; then cd /home/data/backup/ # То до тех пор пока размер папки с бэкапами будет больше 22000 Мб while [ `du -sm /home/data/backup/ | awk '{print$1}'` -gt "22000" ] do # Будем в папке с бэкапами удалять все файлы с расширением "tar.gz", начиная с самых старых find /home/data/backup/ -name "*.tar.gz" -and -type f | sort -r | tail -n1 | xargs -i rm '{}' done echo "Нет подходящих файлов для удаления" # Если папка с бэкапами не превышает 22000 Мб, то выдаст сообщение else echo "Удаление файлов не требуется" fi |