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

Почему не удается отправить электронное письмо для получения информации о ротации журнала?

Я хочу, чтобы logrotate отправлял информацию о ротации журнала на мою электронную почту xxxx@yahoo.com.

cat  /etc/logrotate.d/myservice.log

/var/log/myservice.log {
    size=1M
    dateext
    daily
    rotate 3
    compress
    delaycompress
    missingok
    notifempty
    echo | mutt -s "Log files for `date`"   xxxx@yahoo.com -a  /var/log/myservice.log
    create 644 root root
    postrotate
        /usr/bin/killall -HUP rsyslogd
    endscript
}

Почему повернутую информацию журнала нельзя отправить на мой почтовый ящик Yahoo?

Попробуй это:

/var/log/myservice.log {
    size=1M
    dateext
    daily
    rotate 3
    compress
    delaycompress
    missingok
    notifempty
    create 644 root root
    postrotate
        /usr/bin/killall -HUP rsyslogd     
        /bin/echo | mutt -s "Log files for `date`"   xxxx@yahoo.com -a  /var/log/myservice.log
    endscript
}

Возможно, вам потребуется указать полный путь для «mutt» и изменить имя журнала, как заметил Эса, это может быть log.1, возможно, log.1.gz.

Кстати, rsyslogd способен самостоятельно обрабатывать ротацию журналов, вызывая сценарий, который вы предоставляете, когда ротация необходима. Вы можете добавить рассылку в свой скрипт. например. https://www.rsyslog.com/doc/v8-stable/tutorials/log_rotation_fix_size.html, и цитирую:

# start log rotation via outchannel
# outchannel definition
$outchannel log_rotation,/var/log/log_rotation.log, 52428800,/home/me/./log_rotation_script
#  activate the channel and log everything to it
*.* :omfile:$log_rotation
# end log rotation via outchannel