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

У меня проблема с моей малиной, у моей 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 – распуан

  • Найти дубликаты PDF-файлов по содержанию
  • Подождите, пока разветвленный процесс откроет окно
  • Преобразование датыFormat
  • Команда запуска на основе вывода другой команды
  • Преобразование и масштабирование большого количества png-изображений в jpeg
  • Добавить аудио в видеофайл без кодирования, а также синхронизировать аудио FPS с видео FPS
  • добавьте «проверить, запущен ли fetchmail» в этот скрипт
  • Автоматически находить позицию, начиная с последней команды, запущенной в tmux
  • 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

    Некоторые сообщения ICMP-ответа не поступают в пространство пользователя в последних ядрах

    Buildroot – отсутствуют модули ядра i2c

    Почему именованный канал работает медленнее, чем запись в файл?

    Безопасный WiFi не аутентифицируется

    Linux fedora – пакет httpd и маршрутизатор, как заставить его работать?

    Как chmod без / usr / bin / chmod?

    Объединяйте и сопоставляйте совпадающие и не соответствующие значения между меньшим файлом и огромным файлом

    Принесите беспроводную сеть при обнаружении связи ethernet

    Экран становится черным на ноутбуке (Debian stretch + cinnamon)

    Стоит ли использовать параллельные процессы вместо forking в цикле for?

    И операция по 2 столбцам (даты доступа и mofidy) в файле в linux

    Что означает атрибут 's' в разрешениях файлов?

    «Make install» перезаписывает файлы?

    Не удалось запустить соединение Wlan с wpa_supplicant?

    Используйте eth interface для подключения к маршрутизатору и wlan для Интернета

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