Создать скрипт для проверки размера каталога
У меня проблема с моей малиной, у моей SD-карты всего 16 гб, поэтому через некоторое время журнал внутри / var / log использует все пространство на sd, и я не могу ничего сделать с моей малиной, поэтому я пытаюсь каждый день создавайте скрипт для проверки / var / log размер каталога и отправляйте мне почту с этими данными, поэтому я могу удалить некоторые журналы, когда используемое пространство слишком много, но у меня есть некоторые проблемы с командой du -h / var / log beacause скрипт не выполняет его, кто-нибудь может мне помочь?
это scritp
- Как вы делаете деловые заявления с диапазонами
- проблема с zip-файлом с использованием пароля
- Создание наборов файлов, которые соответствуют заданному размеру носителя для tar -T
- Снимок экрана с неактивным окном
- Использовать xdotool в сеансе telnet
#!/bin/bash folder=/var/log folder_size="du -h /var/log" maxsize=10000000 emailAddr="mymail@gmail.com" while true; do if [ $folder_size -ge $maxsize ]; then echo size is over $maxsize kilobytes subject="DIMENSIONE DELLA CARTELLA $folder HA SUPERATO IL LIMITE!" echo "La dimensione della cartella $folder ha superato il limite di $maxsize" | mail -s "$subject" $emailAddr exit else echo size is under $maxsize kilobytes subject="dimensione della cartella $folder" echo "La dimensione della cartella $folder è di $folder_size - $maxsize" | mail -s "$subject" $emailAddr fi sleep 86400 # in seconds = 1 day done
мой os – распуан
2 Solutions collect form web for “Создать скрипт для проверки размера каталога”
du -h /var/log
(вам нужно использовать backticks, или $ (xxx), а не двойные кавычки) собирается вернуть результат, например, ниже. Но вы хотите определить только размер.
# du -h /var/log 2.6M /var/log/httpd 4.0K /var/log/ntpstats 14M /var/log/sa 4.0K /var/log/mail 26M /var/log/audit 46M /var/log #
Если вы запустите du -s /var/log
вы увидите результат, например,
# du -s /var/log 46256 /var/log #
Таким образом, используя трубопровод в разрезе, вы можете извлечь числовой элемент, как показано ниже.
# du -s /var/log | cut -f1 46256 #
Значение строки в вашем скрипте должно быть изменено с
folder_size="du -h /var/log"
в
folder_size=`du -s /var/log | cut -f1`
Или, чтобы использовать устаревший синтаксис
folder_size=$(du -s /var/log | cut -f1)
Я понимаю, что вы просите о помощи со сценарием. Могу ли я предложить альтернативу, использующую Logrotate для просмотра журнала (журналов) и поворота их по размеру и количеству оборотных журналов, которые вы храните?
Что-то вроде этого:
/tmp/output.log { size 100M copytruncate create 700 root utmp rotate 4 compress }