OXY NOTES

/etc/cron.daily/logrotateでunexpected textエラーが発生した際の対処法

ふと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実行時にエラーが出ることはなくなりました。

しかし、昔は行の途中から#でコメントアウトできていたと思うのですが、仕様が変わったんでしょうか…。