Я использую logrotate для ротации файлов журналов.
Я настроил его для создания новых файлов журнала каждую неделю.
Однако я бы хотел, чтобы он сначала прислал мне файлы журнала в виде вложений.
В /var/log/httpd
файл в настоящее время содержит:
/var/log/httpd/*log {
missingok
notifempty
sharedscripts
firstaction
{I think I need to mail the logfiles here???}
postrotate
/sbin/service httpd reload > /dev/null 2>/dev/null || true
endscript
}
Можно ли делать то, что я хочу?
Если да: что мне добавить к firstaction
для этого:
/var/log/httpd/*log
) как вложение с помощью sendmailHTTPD logfiles {week #}
Если я правильно понимаю ваш вопрос, есть опция logrotate, которая сделает то, что вы хотите. Просто добавьте mail user@yourdomain.com
как один из вариантов конфигурации, например:
/var/log/httpd/*log {
mail user@yourdomain.com
...
Вам будут отправлены файлы журналов, которые будут заменены.
Возможно, вы пробовали это, но это не совсем то, что вам нужно. В таком случае, я думаю, вы по большей части на правильном пути. Однако прямой вызов sendmail - неправильный подход, когда вы пытаетесь отправить сообщение с вложениями. Процитировать sendmail FAQ:
Как мне создавать вложения с помощью sendmail?
Вы этого не сделаете. Sendmail - это агент передачи почты (MTA). Создание сообщений электронной почты, включая добавление вложений или подписей, является функцией почтового агента пользователя (MUA). Некоторые популярные MUA включают mutt, elm, exmh, Netscape, Eudora и Pine. Некоторые специализированные пакеты (метапочта, некоторые модули Perl и т. Д.) Также могут использоваться для создания сообщений с вложениями.
Если у вас есть почтовый пользовательский агент дворняга (или можете установить его), он должен уметь делать то, что вы хотите. Попробуйте что-то вроде этого:
/var/log/httpd/*log {
firstaction
echo | mutt -s "Log files for `date`" user@yourdomain.com -a /var/log/httpd/*log
endscript
...
Обратите внимание, что в вашем примере файла конфигурации вам не хватает endscript
для тебя firstaction
команда.