cronでどうしてもshelが自動化できないのですが

わかる人教えてもらえますか?

/usr/local/analog/analog.sh というシェルがあります。
単体で実行できます。

Crontab -e

00 04 * * * /usr/local/analog/analog.sh
設定してあります。

service crond start

crond を起動中: cannot start crond: crond is already runnin
とでるので既に実行されていることは分かります。

だれか、わかる人 教えてください。

回答の条件
  • 1人3回まで
  • 登録:2007/03/08 20:39:07
  • 終了:2007/03/15 20:43:24

回答(3件)

id:kurukuru-neko No.1

kurukuru-neko回答回数1844ベストアンサー獲得回数1552007/03/08 21:26:05

ポイント27pt

1. 正しく保存されているか確認する

crontab -l

0 4 * * * /usr/local/analog/analog.sh


2. シェルを指定する

/usr/local/analog/analog.shの1行目に

動作させたいシェルを指定する。

(パスは実際に動作するシェルに変更)

例:1行目に#!の行を追加

#!/bin/bash

3. 実行権限の確認

ls -l /usr/local/analog/analog.sh

で該当ユーザーで実行権限がある

取り合えず確認なら

chmod 0555 /usr/local/analog/analog.sh

4. なんらかの出力がある場合

0 4 * * * /usr/local/analog/analog.sh >>/tmp/analog.log 2>>/tmp/analog-err.log

のように出力先を指定する。

5.cronの実行権限を調べる

もし/etc/cron.allowファイルがある場合

/etc/cron.allowに当該ユーザーを追加

する。

もし/etc/cron.denyファイルがある場合

/etc/cron.denyに当該ユーザーある場合

削除する。

6.crondの再起動

service crond restart

(/etc/rd.d/init.d/crond restart)

NECのCRON解説ガイド

http://www.express.nec.co.jp/linux/distributions/knowledge/syste...

http://cyberam.dip.jp/linux_foundation/system/cron_main.html

crontab

http://www.linux.or.jp/JM/html/cron/man1/crontab.1.html#lbAC

http://ja.wikipedia.org/wiki/Crontab

id:ito-yu No.2

ito-yu回答回数323ベストアンサー獲得回数142007/03/09 01:53:57

ポイント27pt

id:kurukuru-nekoさんの書かれていないことだけ。

実行されているかどうかが心配ならばcronの実行ログを確認しましょう。

たいていのディストリでは /var/log/cron とかにあると思います

自分でシェル上で実行するときとcronで実行するときで環境変数が異なります。特にPATHが重要です。

シェルスクリプトの先頭で適切なPATH(シェルスクリプト中に現れるコマンドの存在するすべてのディレクトリ)を再設定してみてはいかがでしょうか。

id:oyajiman No.3

oyajiman回答回数25ベストアンサー獲得回数12007/03/09 13:00:46

ポイント26pt

shellスクリプトが実行できないということですよね。単にcronで動かしたいんだったら

sh /usr/local/analog/analog.sh

じゃだめでしょうか。

  • id:KazyN
    shell の中身がわからないと何とも。

    一般的にはパーミッションとか置き場所とかいろいろ原因は考えられますが....
    あ、あと、ログはないのでしょうか?
  • id:samejima
    起動しようとしたのならCRONファシリティのログが
    起動後にエラーが起きたのなら、標準エラーの内容がメールで届くはず。
    先ず、それを見せてください。
  • id:KazyN
    あり?コメントがひとつ減ってる。
    まぁいいや。
    とりあえずこのへんのスレッドでも読んでみてはいかがでしょう。
    http://his.luky.org/ML/linux-users.a/msg05574.html
  • id:kurukuru-neko
    >シェルスクリプトの先頭で適切なPATH

    実行されるが正常動作しない場合
    大抵の場合、環境変数ですね。

    crontab -eで設定しておいた方が便利
    がよいと思われる変数

    1.SHELLを指定しないと大抵/bin/shが呼ばれる
    2.PATHの設定をする。指定しないと
    /usr/bin:/bin位しか設定されていない
    3.SHELLの初期化でログイン相当の初期化
    をしたい場合
    #!/bin/bash → #!/bin/bash -l
    に変更する。

    ========================================
    その他スペシャル文字列
    @reboot等
    http://taka.no32.tk/diary/20051230.html

     


この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません