Это не совсем вопрос программирования как такового, скорее вопрос обработки журнала.
Тем не мение. У моей компании несколько клиентов, и у каждого из них есть набор журналов, которые я бы очень хотел, чтобы они отправили мне по электронной почте.
Теперь еще одно предварительное условие - они должны быть выделены простым HTML.
Все очень хорошо, для данных типов бревен удалось сделать хайлайтер. Итак, что я делаю, я использую logrotate
с prerotate
материал для отправки журналов по электронной почте. Пример:
/var/log/a.log /var/log/b.log { daily missingok copytruncate prerotate /usr/bin/python /home/foo/hilight_logs /var/log/{a,b}.log | /usr/sbin/sendmail -FLog\ mailer -fnoreply@client.com me@mydomain.com endscript }
Проблема с этим подходом в основном в том, что logrotate
отстой: он запустит команду для каждого файла журнала, указанного в спецификаторе, и, насколько мне известно, нет способа узнать, какой из файлов журнала обрабатывается. (Что все равно не поможет.)
Если не повторять то же самое logrotate
до 10 раз на разных машинах, единственное, что я могу сделать, это просто увязнуть в спаме журнала каждую ночь. И я устал от этого сегодня, поэтому я спрашиваю.
попытаться заменить prerotate
с участием firstaction
. таким образом ваша почтовая команда будет выполняться только один раз для всех журналов, определенных в блоке.
это текст со страницы руководства:
firstaction/endscript
The lines between firstaction and endscript (both of which must appear on lines by themselves) are executed once before all log files that match the
wildcarded pattern are rotated, before prerotate script is run and only if at least one log will actually be rotated. These directives may only
appear inside a log file definition. If the script exits with error, no further processing is done. See also lastaction.