Log-Files
使用 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
什麼才能:
- 使用 sendmail將日誌文件 (
/var/log/httpd/*log
) 作為附件郵寄給我- 在郵件中添加一些主題,例如:
HTTPD logfiles {week #}
如果我正確理解了您的問題,則有一個 logrotate 選項可以滿足您的要求。只需添加
mail user@yourdomain.com
為配置選項之一,如下所示:/var/log/httpd/*log { mail user@yourdomain.com ...
這會將即將輪換的日誌文件郵寄給您。
也許您已經嘗試過了,但它並沒有完全滿足您的需求。在這種情況下,我認為您在大多數情況下都走在了正確的軌道上。但是,當您嘗試發送帶有附件的消息時,直接呼叫 sendmail 不是正確的方法。引用sendmail 常見問題解答:
如何使用 sendmail 創建附件?
你沒有。Sendmail 是一個郵件傳輸代理 (MTA)。創建電子郵件消息,包括添加附件或簽名,是郵件使用者代理 (MUA) 的功能。一些流行的 MUA 包括 mutt、elm、exmh、Netscape、Eudora 和 Pine。一些專門的包(元郵件、一些 Perl 模組等)也可用於創建帶有附件的消息。
如果你有郵件使用者代理mutt(或者可以安裝它),它應該能夠做你想做的事。嘗試這樣的事情:
/var/log/httpd/*log { firstaction echo | mutt -s "Log files for `date`" user@yourdomain.com -a /var/log/httpd/*log endscript ...
另請注意,在您的範例配置文件中,您缺少
endscript
for 您的firstaction
命令。