明滅するプログラマの思索

WEBエンジニアとして勤務している一介の男が、日々気づいたことをまとめるブログです

logwatch のファイル出力が実行されない場合の対処

CentOS7 で logwatch を使用し、結果をファイルに出力する場合、手動では以下のコマンドを実行することになります。

logwatch --output file --filename <file name>

CentOS6 までは以下の書き方でした。

logwatch --save <file name>

正直、CentOS6 までのコマンドのほうが簡潔で好きですが、
--output stdout(標準出力)に対応するため、仕方のない変更だったのでしょう。
なお、ファイル出力を crond で実行する場合、
/etc/logwatch/conf/logwatch.confの記述は以下となります。

CentOS7 の場合
Output = file
Filename = <file name>
CentOS6 以下の場合
Save = <file name>

CentOS6 以下の場合、これで問題なく動きます。
しかし、CentOS7 ではファイル出力が行われません。

CentOS7 でファイル出力するためには、/etc/cron.daily/0logwatch を書き換える必要があります。

#OPTIONS="--output mail"
※OPTIONSの行をコメントアウトする

これでファイル保存されるようになります。

なお、/etc/logwatch/conf/logwatch.conf のファイル名には dateコマンドが使えません。
したがって、ファイル名に日付などを付与したい場合、/etc/cron.daily/0logwatch を書き換える必要があります。
ここはとても不便なところですね。