Fedora14  cronでコマンドが実行されない件

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”で修正が入ったようですね。公開前に十分にテストをしていただきたいものです。