• ベストアンサー

crontabの自動実行について (Debian3.0)

OSはDebian GNU/Linux 3.0です。 現在の環境はシェルスクリプトを実行する際に ./をつける必要があります。 abc.shを実行するなら、./abc.shとしてやれば実行できます。 それでこのabc.shを自動実行させたいので cron.dailyに移動させたのですが、やはりこのまま(./が必要)では 自動実行されないのでしょうか? ./を必要としないようにするためにはどのようにすればよいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

>それでこのabc.shを自動実行させたいので >cron.dailyに移動させたのですが、やはりこのまま(./が必要)では >自動実行されないのでしょうか? ./を付けなくても自動実行されます。もしうまく動作しないとすれば、 それは、./がどうのこうのという問題とは全く別に問題が有るからです。 >現在の環境はシェルスクリプトを実行する際に >./をつける必要があります。 >abc.shを実行するなら、./abc.shとしてやれば実行できます。 >./を必要としないようにするためにはどのようにすればよい >のでしょうか? 普通のUNIX系システムでは、カレントディレクトリのコマンド・スクリプト を動作させるときは、./が必要となります。あなたの作成したabc.shに 問題が有るのではなく、どんなコマンド・スクリプトであろうと、カレント ディレクトリにそのコマンド・スクリプトが有るなら./が必要です。 # いや、本当はカレントディレクトリがどこかによって違うけどさ。 なぜ、そうなるかは、カレントディレクトリには普通、PATHが設定されて いないからです。本当に./を付けるのがイヤなら、PATHに./を追加すれ ば良いでしょう。でも、UNIX系のOSでは、セキュリティ上の観点と今まで の慣習により、PATHにカレントディレクトリを含むのは好まれません。

apache6
質問者

お礼

無事、./が必要な環境でもcronで 実行することができました。 ありがとうございます。

apache6
質問者

補足

./の有無は自動実行には無関係なのですね。 今はcron.dailyにスクリプトファイルを入れて 自動実行の動作確認をしていますので 1日1回しか確認できません。 もっと効率よく自動実行を確認する方法はあるのでしょうか?

その他の回答 (1)

  • xjd
  • ベストアンサー率63% (1021/1612)
回答No.2

>1日1回しか確認できません。 >もっと効率よく自動実行を確認する方法はあるのでしょうか? cron.daily/ 内のスクリプトをいつ実行するかは、/etc/crontabファイル に記述されていますので、一時的に変更してみればよいです。 ただし、cron.daily/配下の他のスクリプトも動いてしまいますので、 別の場所に移動させるなり、実行権を奪う、などしてください。

apache6
質問者

お礼

crontabに時間を指定して、 cronの動作確認に成功しました。 ご回答ありがとうございます。

関連するQ&A