ふとcronのログを見ていると以下のようなログが発生していました。
/etc/cron.daily/logrotate: error: swatch:2 unexpected text error: swatch:3 unexpected text error: swatch:4 unexpected text
/etc/cron.daily/logrotateにswatchのスクリプトなんか書いたかな?と見てみると以下の通り。
#!/bin/sh
/usr/sbin/logrotate /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0
swatchについては書いていませんが/etc/logrotate.confを実行しているということで見てみると以下の通り。
# RPM packages drop log rotation information into this directory include /etc/logrotate.d
そういえば/etc/logrotate.dディレクトリの設定ファイルを読み込んでログローテートしてるんでした。
(こういうのって設定するときは理解してても、しばらく放置してると忘れますねw)
ということで/etc/logrotate.d/swatchを開いてみるとどうやら行の途中から#でコメントアウトするとunexpected textエラーになるようです。
そこで行頭から#をつけてコメント行の形に変更しました。
具体的には以下のようなコメントを
/var/log/swatch/swatch.log {
missingok # ログファイルがなくてもエラーを出さない
↓こんな感じにコメント行に変更
/var/log/swatch/swatch.log {
# ログファイルがなくてもエラーを出さない
missingok
その後/etc/cron.daily/logrotate実行時にエラーが出ることはなくなりました。
しかし、昔は行の途中から#でコメントアウトできていたと思うのですが、仕様が変わったんでしょうか…。

rsyslogを利用したログファイル作成と、logrotateを利用したログのローテーション
Swatchでログを監視して、攻撃に合わせた対策を自動で実行する方法
障害報告・アラート表示・ログのデータベースへの出力と活躍するrsyslogの使い方
iptablesの設定とログファイルのローテーション
XAMPPで.htaccessを利用すると500Errorになる理由
Nginxで特定の国のIPだけを許可する方法
サーバの処理を自動実行するcronの仕組みと応用法








