お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2010-01-22 00:28:03

oosamuuy
メンバ
登録日: 2009-03-09

cronが機能していないようです。

お世話になっております。
 現在crontabでいくつか設定しているのですが、端末から手動で実行するときちんと実行されるのですが、cronに設定すると機能していないようなのです。単純なスクリプトでいろいろ試してみたのですが、その他のプログラムはきちんと動いています。端末で実行できるのにcronで実行しないというのにはどんな原因が考えられるのでしょうか?phpやperlなどで単純にcronの実行時間を記録するようなものを置いてみましたが、きちんとスタンプされていました。
 syslogなどのログでは正常に実行した…という感じでログが残っています。特にエラーは出ていない(他に何か参照するログがあるでしょうか?)と思います。

 実行されないプログラム自体は非常に単純でrsyncを使ったバックアップ(差分コピー)です。もしかしたらcronに原因があるのではなくこのプログラム自体に問題があるのかもしれませんが、端末から手動で実行すると大丈夫なのでここでは(たぶん)問題はない筈です。

crontabでの設定は以下のようになっています。このcronのユーザーはrootです。

# m h  dom mon dow   command
0 */6 * * * php /home/myuser/public_html/test/php/time/time_stamp.php >/dev/null 2>&1
20 5 * * * bash /root/bin/backup/rysnc-system.sh >/dev/null 2>&1

 何か怪しい点がありましたらご指摘ください。よろしくお願いします。

オフライン

 

#2 2010-01-22 01:00:18

si
メンバ
From: hokkaido kitami, jp
登録日: 2007-01-15

Re: cronが機能していないようです。

# m h  dom mon dow   command
0 */6 * * * php /home/myuser/public_html/test/php/time/time_stamp.php >/dev/null 2>&1
20 5 * * * bash /root/bin/backup/rysnc-system.sh >/dev/null 2>&1

php、 bash をフルパスで書いたらどうなります?
また、出力を捨てずに、ファイルに出力してみては?

オフライン

 

#3 2010-01-22 01:09:20

funatogawa
メンバ
From: 関東
登録日: 2009-02-01

Re: cronが機能していないようです。

こんばんは
何かcrontabの書式がちがう気がするのですが。
ふつうは"~.sh"の1行目に#!/bashと書いて、実行シェルを指定しますので、コマンドの先頭に"php"とか"bash"入らないのでは。
http://www.k4.dion.ne.jp/~mms/unix/linu … ontab.html
cron.txtに自動実行させたい内容を書いておき、「#crontab cron.txt」で登録すれば登録時エラーが表示されるとのことです。
http://blog.f14s.biz/?p=1399

オフライン

 

#4 2010-01-24 07:32:56

ry
メンバ
登録日: 2008-07-30

Re: cronが機能していないようです。

#3の funatogawaさん による投稿:

ふつうは"~.sh"の1行目に#!/bashと書いて、実行シェルを指定しますので、コマンドの先頭に"php"とか"bash"入らないのでは。[/url]

別に 1行目に #! /bin/bash などと書かれていなくても、bash のコマンドラインにスクリプトファイル名を渡して実行させることもできるので、特に間違いというわけではありません

可能性としては #2 で si さんがすでに指摘しているように、cron からの起動には成功しているが、スクリプトの中でエラーが出ているという気がします
出力を /dev/null に捨てないようにして、/var/log/syslog に落とされるログを確認してください

オフライン

 

#5 2010-01-27 20:10:41

oosamuuy
メンバ
登録日: 2009-03-09

Re: cronが機能していないようです。

返信遅くなりました。様々な解決法ありがとうございます。

>siさん
 フルパスでやってみるとうまく動きました。以前はフルパスじゃなくても動いていたのですが、やはりどこかの設定が違うのでしょうか?

SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/var/lib/gems/1.8/bin
RAILS_ENV=production

というのを追加したらフルパスじゃなくても動くようになりました。

>funatogawa
 cron.txtに書いてから読み込ませる方法は大変参考になりました。ありがとうござます。script自体には問題がなかったので特にエラーメッセージはなかったのですがこれから活用してみたいと思います。

>ryさん
 syslogには、正常に起動しましたみたいなことになっているのです。
Jan 27 18:12:01 lily CRON[13665]: (root) CMD (bash /root/bin/backup/rsync-system.sh)
といった感じです。フルパスの場合も、
Jan 27 18:12:01 lily CRON[13665]: (root) CMD (/bin/bash /root/bin/backup/rsync-system.sh)
と同様でした。ただフルパスじゃないと中身が実行されていない…ということでしたが。。。

一応解決しましたが、まだまだ勉強不足のような気がしております。
いろいろありがとうございます!

オフライン

 

Board footer

Powered by FluxBB