Назад | Перейти на главную страницу

Почта регистрирует файлы как вложения с помощью sendmail

Я использую 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 для этого:

Если я правильно понимаю ваш вопрос, есть опция 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 команда.