Fedora14を入れた機械で、yum updateを実行しました。
翌朝、この機械からlogwatchのメールがきていませんでした。「これは落ちたか?」と思いながらログインしてみると、特に問題なく動いている様子。今日は仕事が暇でしたので、仕事場からログインして探ってみることにしました。
ログを観察すると、cronからlogwatchが呼ばれていないようです。下流のコマンドからコンソールで起動して動作を確認してみました。
- logwatch 正常
- anacron 正常
- run-parts 正常終了だが、下流コマンドを呼んでいないご様子
ということで、run-partsが怪しそうです。シェルスクリプトですので、簡単にechoコマンドをトラップ代わりに仕込んで動作を見てみます。結果、コマンドを呼ぶときにファイル名を正しく呼んでいない事が判明。ついでに引数の処理も怪しいことが判明。下記のように修正しました。
- 42行目 : for i in $(LC_ALL=C; echo $1*[^~,]) ; do -> for i in $(LC_ALL=C; echo $1/*[^~,]) ; do
- 67行目 : if [[ $list == 1 ]]; then -> if [ “$list” = “1” ]; then
- 69行目 : elif [ $test == 1 ]; then -> elif [ “$test” = “1” ]; then
これで動作するようになります。
(2010/11/15 追記)
昨日の”crontabs-1.11-1.20101111git.fc14.noarch”で修正が入ったようですね。公開前に十分にテストをしていただきたいものです。