Я хочу, чтобы 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