Постоянно контролировать журнал в Linux и отправлять электронную почту при обнаружении ошибки - PullRequest
0 голосов
/ 07 июня 2018

Я пытался отслеживать торговый журнал в Linux, и всякий раз, когда обнаруживается какая-либо «ОШИБКА», он должен отправить мне электронное письмо, и этот процесс мониторинга должен продолжаться вечно.Мое текущее решение выглядит следующим образом:

tail -f trade.log | grep -iE 'error' | mail -s 'Error Detected' XXX@XXX.com

Но, похоже, это не работает.Как это может отправить электронное письмо, но тело письма пусто и отправлено только одно электронное письмо.Что я должен делать?И любые другие хорошие решения приветствуются.Спасибо !!

1 Ответ

0 голосов
/ 07 июня 2018

Вы можете запустить два процесса.Один процесс выдает -f trade.log и отправляет все выходные данные в файл с отметкой времени [https://www.commandlinefu.com/commands/view/7151/monitor-a-file-with-tail-with-timestamps-added].. Другой процесс выполняется каждую единицу времени.Он находит слово «error» и добавляет строки в новый файл «report».Затем отправляет по электронной почте содержимое отчета, используя что-то вроде mail -s "Subject" address@someisp.com < textfile_with_mail_contents.txt.О, и вы должны удалить каждый файл, как только вы их закончили.Это так, когда вы запускаете второй процесс, чтобы он не случайно перехватывал дубликаты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...