2014/03/02(日)Logwatch で Date::Manip unable to determine TimeZone が出た時の対処法

とりあえず、rootになって現在のタイムゾーンを確認します。

perl -MDate::Manip::TZ -le 'print Date::Manip::TZ->new->zone;'

正常ならば、「Asia/Tokyo」とか出力されます。

ここで自分の場合は、以下のエラーが出ました。

ERROR: failed to load Date::Manip::Lang::english: Can't locate YAML/Syck.pm in @IN

そのため、「cpanm YAML::Syck」でYAML::Syckをインストールしました。(cpanm がないなら「cpan YAML::Syck」でOK)これで自分の場合はエラーが解消されました。

「Date::Manip::TZ」のドキュメントによると、↓の順番でチェックするようなので、出力がおかしかったら妥当なタイムゾーンが出力されるまでいじりましょう。

main     TZ
env      zone TZ
file     /etc/TIMEZONE
file     /etc/timezone
file     /etc/sysconfig/clock
file     /etc/default/init
command  "/bin/date +%Z"
command  "/usr/bin/date +%Z"
command  "/usr/local/bin/date +%Z"
cmdfield /bin/date             -2
cmdfield /usr/bin/date         -2
cmdfield /usr/local/bin/date   -2
gmtoff

詳細は↓ http://search.cpan.org/~sbeck/Date-Manip-6.42/lib/Date/Manip/TZ.pod#DETERMINING_THE_SYSTEM_TIME_ZONE