- PR -

cronが動かない

投稿者投稿内容
どらねこ
常連さん
会議室デビュー日: 2004/01/05
投稿数: 25
投稿日時: 2006-04-26 21:55
学習のためにFedoraCore4をインストールしたのですが、
crontab -eでcronの設定をしたところ、時間になってもcronが動いてくれません。

cronの設定は以下のようにしています。
0,15,30,45 * * * * /etc/mycron/mybatch > /var/log/cron

状況としては以下のとおりです。
・時間になってもcronログに何も出力されない。maillogにも何も出力されていない。
・呼び出し先のmybatchを手動実行すると実行される。
・呼び出し先のmybatchのアクセス権は777を与えてある。
・crontab -eで独自の設定をする前(インストール直後)はcronが動いていた(毎日rootのメールアドレスへアクセス情報などを送信してきた)。
・crontab -e で内容を変更すると、/var/log/cron に変更した旨のログが出力される。
・/etc/rc.d/init.d/crond status を実行すると、「crond (pid 1903) を実行中...」と返ってくる。
・clock -r とすると現在時刻が返ってくる
・date とすると現在時刻が返ってくる

ネットで情報を収集し考えられることは全て試したのですが、やはり動いてくれませんでした。
どなたか考えられる点がありましたら、教えていただけないでしょうか。
宜しくお願いいたします。
せん
ぬし
会議室デビュー日: 2002/03/04
投稿数: 397
投稿日時: 2006-04-26 22:38
/etc/mycron/mybatch > /var/log/cron

上記をそのまま、cron を動かすユーザで実行してみましたか?
どらねこ
常連さん
会議室デビュー日: 2004/01/05
投稿数: 25
投稿日時: 2006-04-27 00:05
>せんさん
実行してみたところ、mybatchは実行されました。/var/log/cronファイルも更新時刻が更新されていますが、ファイルの中身が空になってしまいます。
ちょっとよくわかないのですが、これはファイルが再作成されているのでしょうか??今まで残っていたログも消えてしまっています。
/etc/mycron/mybatch だけを実行するとmybatchは実行され、/var/log/cronは更新されません。当たり前だとは思いますが。。。
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2006-04-27 01:33
こんばんわ.
引用:

らうさんの書き込み (2006-04-27 00:05) より:

ちょっとよくわかないのですが、これはファイルが再作成されているのでしょうか??今まで残っていたログも消えてしまっています。


> と >> の区別はついてますか?
ゆえる
ベテラン
会議室デビュー日: 2006/04/21
投稿数: 57
投稿日時: 2006-04-27 13:17
こんにちは

引用:


・/etc/rc.d/init.d/crond status を実行すると、「crond (pid 1903) を実行中...」と返ってくる。




crontab編集後restartを実行しましたか?
スフレ
ぬし
会議室デビュー日: 2005/05/27
投稿数: 281
お住まい・勤務地: 東京
投稿日時: 2006-04-27 14:07
「>」で/var/log/cronが空になるということは、cronデーモンはちゃんと動いていて、少なくともmybatchを起動しようとはしているんでしょう。ちゃんと起動できたのかどうかは不明ですね。

まずは、mybatchの出力を/var/log/cronに出そうとしないで別のファイル名にしましょう。そうすれば、mybatchの起動に失敗してれば/var/log/cronに何らかの情報が残るのではないでしょうか。

mybatchが起動したかどうかの確認も、出力がログに残るかどうかだけでなく別の手段もやってみましょう。たとえば、スクリプトの先頭で touch /tmp/mybatch-ugoitayo しておくとか。

どらねこ
常連さん
会議室デビュー日: 2004/01/05
投稿数: 25
投稿日時: 2006-04-28 02:21
皆様たくさんのアドバイスありがとうございます。
返答が遅くなってしまって申し訳ございません。

>kazさん
追記書き込みは>>でした。失礼しました。
しかし>>としてもやはり/var/log/cronには何も出力されませんでした。

>未記入さん
restartを実行しましたが、やはり時間がきても/var/log/cronに何も出力されませんでした。

>スフレさん
/var/log/cronが空となったのは、/etc/mycron/mybatch > /var/log/cron を手動で実行した場合です。自動実行された結果ではありません。
>まずは、mybatchの出力を/var/log/cronに出そうとしないで別のファイル名にしましょう。
crontab -e で以下のように編集しましたが、時間となってもmybatchlogは作成されず、/var/log/cronにも何も出力されませんでした。
0,15,30,45 * * * * /etc/mycron/mybatch >> /var/log/mybatchlog
上記コマンドを手動で実行した場合、mybatchlogが作成されました。

>スクリプトの先頭で touch /tmp/mybatch-ugoitayo しておくとか。
mybatchスクリプトの先頭に上記コマンドを入れたのですが、時間となっても/tmp/mybatch-ugoitayoが作成されませんでした。手動で実行した場合、/tmp/mybatch-ugoitayoが作成されました。

う〜ん、、、やはり根本的に時間が来てもcronが実行していないように思われます。
かつ
ベテラン
会議室デビュー日: 2006/04/04
投稿数: 56
投稿日時: 2006-04-28 11:04
FedoraCore4 は良く知らないのですが、自宅で使っている debian では、/etc/cron.d/ 配下にファイルを作って自動実行させています。

こちらの方法も試されては如何でしょう。

# 私もSolarisでは crontab -e です。

スキルアップ/キャリアアップ(JOB@IT)