Пока цикл чтения по электронной почте

У меня проблемы со сценарием, который я пишу. Я пытаюсь контролировать свободное место на диске и иметь электронную почту, созданную для каждой файловой системы с определенным порогом. При использовании этого сценария с «echo» вместо «mail», вывод выглядит корректно для моего терминала. Когда я включаю почту, отправляется только критическое предупреждение, а тело письма включает в себя другие файловые системы. Я пытаюсь отправить отдельные письма для каждой файловой системы. Я не ищу ответа, но, возможно, определенное место, чтобы сосредоточиться, чтобы попытаться определить, в чем моя проблема.

#!/bin/bash #The following script will check filesystems (local/nfs only) #and notify via email current user if over certain threshold. #Thresholds for script to call CRITICAL=90 ALERT=70 #Gets local/nfs disk info, greps out header/tmp filesystems and awks column 1 and 5 #while read loop is enabled to parse through each line df -l | grep -vE '(^Filesystem)' | awk '{ print ($5 " " $1)}' | while read output; do #updates variables to reads current step usage=$( echo $output | awk '{print $1}' | cut -d'%' -f1 ) part=$( echo $output | awk '{print $2}' ) #if percentage matches alert or critical, email current user if [ $usage -ge $CRITICAL ]; then mail -s "Critical Warning: Filesystem $part is at $usage% of capacity." $USER elif [ $usage -ge $ALERT ]; then mail -s "Warning: Filesystem $part is at $usage% of capacity." $USER fi done 

  • Скрипт, который выводит общее количество строк во всех текстовых файлах, передаваемых в качестве аргументов
  • Как переместить файл, если имя папки содержит имя файла
  • Как скопировать чужие папки с public.me.com с помощью wget-подобного инструмента?
  • Добавить один файл в два файла в unix script
  • Как определить интерпретатор команд из сценария оболочки?
  • Сценарий BASH, представляющий синтаксическую ошибку IF
  • Как запустить скрипт на fstab mount не удалось и попробуйте еще раз? Как исключение обработки
  • Сценарий. Как сортировать и перемещать каталоги
  • 2 Solutions collect form web for “Пока цикл чтения по электронной почте”

    Ваша команда mail ожидает, что ее сообщение будет включено в STDIN, и поэтому читает оставшуюся часть вывода, сгенерированного вашим конвейером df ... awk .

    Если вы действительно не хотите, чтобы в вашем почтовом сообщении не было тела сообщения, просто удалите STDIN из /dev/null :

     mail -s "Critical Warning: Filesystem $part is at $usage% of capacity." $USER </dev/null 

    Как уже упоминалось выше, почтой требуется какая-то информация stdin или / dev / null, чтобы она не захватывала stdio.

    Но, возможно, вместо нулевых данных вы можете включить в тело письма больше информации, которая может помочь в диагностике проблем. В этом примере добавляется дополнительный штамп данных. (всегда полезно избегать отправки почтовых отправителей с ошибками при запуске почтовых заголовков) полный отчет df на всех дисках, а не только проблема, и моментальный снимок текущих процессов, которые могут быть полезны при заполнении дискового пространства путем безудержного процесса.

     Example: mail -s "Critical Warning: Filesystem $part is at $usage% of capacity." $USER << EOM Critical Report Generated `date` Disk status: `df -h` Process Status: `top -b -n 1' EOM 
    Interesting Posts

    Atom 230 + 2GB RAM хранилище данных для небольшого сервера = 64-разрядный или 32-разрядный debian

    Синхронизировать файлы из одной папки сервера с другой

    Копировать / домой без root

    на точки подключения к локальной файловой системе

    Запустить запуск демона с помощью Linux

    Как я могу предотвратить открытие Hangouts Google на всех рабочих пространствах?

    Зашифрованный архив труб в загрузчик

    Почему visudo препятствует другим редакторам?

    Используйте команду find для выполнения ряда команд

    Как удалить папки, созданные с именами дат 2016-04-03 до 2016-10-4

    извлечение данных из файла журнала и построение его с использованием Gnuplot

    создание моего собственного initrd, как заполнить каталог dev

    Как извлечь конкретное поле из строк из файла на основе соответствия последующих строк

    Каков вход для входа в систему openSUSE по умолчанию?

    Как сделать звуковой сигнал для ПК

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