Создать скрипт для проверки размера каталога

У меня проблема с моей малиной, у моей SD-карты всего 16 гб, поэтому через некоторое время журнал внутри / var / log использует все пространство на sd, и я не могу ничего сделать с моей малиной, поэтому я пытаюсь каждый день создавайте скрипт для проверки / var / log размер каталога и отправляйте мне почту с этими данными, поэтому я могу удалить некоторые журналы, когда используемое пространство слишком много, но у меня есть некоторые проблемы с командой du -h / var / log beacause скрипт не выполняет его, кто-нибудь может мне помочь?

это scritp

#!/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 – распуан

  • Запуск нескольких программ в фоновом режиме и проверка их возвращаемого значения
  • Прямой рекурсивный вывод сценария оболочки для каждого подкаталога, а не родительского каталога
  • добавьте «проверить, запущен ли fetchmail» в этот скрипт
  • apt-get - Как жаловаться на неудачное обновление?
  • сценарий tmux для запуска нескольких команд
  • Как программно запросить базу данных приложений Freedesktop?
  • Создать каталог в / var / run / при запуске
  • дата - годы до 1901 года считаются недействительными
  • 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 } 
    Interesting Posts

    Не удалось войти в систему Kali Linux после обновления, только через tt1

    Умножить строки столбца в разных частях данных, добавить их вместе и получить среднее значение?

    Почему не создается net-snmp 5.7.2. предоставить /etc/rc.d/init.d/snmptrapd?

    Как запустить Xserver с драйвером VESA сверху с использованием 24bpp

    Невозможно вставить команду в vim 8.0

    Как я могу исходный файл bashrc каждый раз, когда я 'очищаю'

    Добавление значений в переменные среды из Emacs

    Отправляет SIGKILL в процесс с заменой, который отменит его до убийства?

    диалог, ловушка и SIGTRAP

    Как разделить переменную $ 0, чтобы найти каталог и относительные пути в bash?

    dhcp без dns: ping `hostname` не работает. Авто добавить имя хоста в / etc / hosts?

    7.1 аудио с AVR: только передний левый и правый выходы

    перекрестная компиляция gcc не выполняется

    Udev: cmd выполняется при подключении устройства, но ничего не делает

    По какой причине DVD-ROM HP C7499A не должен работать на старой Sun Ultra Enterprise II?

    Linux и Unix - лучшая ОС в мире.