0

これは私のcrontab-eファイルの内容です

#!/bin/bash
6 14 * * * /home/rishi/cront.sh

また、cront.shファイルにはこれしかありません

mkdir foo

私はこの2日間からこの作品を作ろうとしています。cront.shコマンドは、ターミナルから実行したときに機能します。ただし、crontabからは機能しません。

編集

rootを使用してcrontab-eを編集するだけで、うまくいくことがわかりました。これ以上何もする必要はありませんでした。

4

3 に答える 3

3

cronでは、環境変数 (最も重要なのは ) が適切に設定されるという保証はありませんPATH

crontab の先頭に次のような行を追加してみてください。

PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin

また、mkdir のフル パスを使用することをお勧めします。

mkdir /path/to/my/dir

また、cront.sh が実行可能であることを確認しても問題ありません。

chmod +x /home/rishi/cront.sh

その後、動作するはずです。

編集

crontab の問題をデバッグする一般的な方法:

  • デバッグするスクリプトの先頭に、次の行を追加します。

    set    # this should print all environment variables
    
  • スクリプトを手動で実行し、出力をログ ファイルにリダイレクトします1。

  • 次に、crontab を次のように編集します。

    * * * * * /path/to/my/script 2>&1 > /path/to/log/file2
    

スクリプトのログ ファイルが書き込み可能であることを確認してください。また、スクリプトに実行可能ビットが設定されていることを確認してください。

  • env に注意して、log file1 と log file2 を比較します。変数。それらが異なる場合は、同じになるように設定する方法を使用してください。に行を追加したり、スクリプトでcrontab使用したりすることができます。export var=value

  • その後、これが正しく機能しない理由はありません。

于 2013-01-14T08:52:55.987 に答える
1

最初の行にする必要はありません

#!/bin/bash <--- remove this line
6 14 * * * /home/rishi/cront.sh

スクリプトは実行可能ですか?

そうでない場合。ターミナルで次のコマンドを実行してみてください。

 chmod +x /home/rishi/cront.sh

コメント付きフィールドを含むフォーマットの例はcrontab次のとおりです。

# Minute   Hour   Day of Month       Month          Day of Week        Command    
# (0-59)  (0-23)     (1-31)    (1-12 or Jan-Dec)  (0-6 or Sun-Sat)                
    0        2          12             *               0,6           /your/path/yourscript.sh
于 2013-01-14T08:44:31.630 に答える
0

試す

6 14 * * * sh /home/rishi/cront.sh

またはcront.shに最初の行を追加します

#!/bin/bash

または chmod a+x /home/rishi/cront.sh

于 2013-01-14T08:53:33.433 に答える