現在のDebian設定には、Dovecot、Postfix、およびSpamassassin用のspamdがすべてのメッセージを出力する/var/log/mail.logファイルがあります。このコマンドはsyslogに出力できることを知っていますが、logger
bashスクリプトからメールログに簡単に出力できるコマンドはありますか?それとも手動で開き、追加する必要がありますか?
答え1
私が録音した内容は次のとおりですlogger
。返品とにかく私のファイルにはログアウトされています/var/log/mail.log
。私はこれが(とにかくDebianで)デフォルトのログ設定がメールの/etc/rsyslog.conf
「facility」のデフォルトログをmail.logファイルとして定義するのに対して、私のスクリプトはメール「facility」にログを書き込むからだと思います。これはlogger
mail.logとsyslogの両方にロギングを引き起こすようです。
答え2
Bash コンテキストでは、「手動で開くと追加」は非常に簡単です。
mycommand >> /var/log/mail.log
標準出力はmycommand
ファイルからファイルに移動します。スクリプトの先頭にこれを置くと:
exec 1>&2&>> /var/log/mail.log
スクリプトの残りの部分にあるすべてのエントリの標準出力(1)とエラー(2)がファイルに追加されます。
最初にファイルを切り捨てる(つまり、既存のコンテンツに追加しない)>
代わりに>>
。