0

私のスクリプトは /u01/software/aditya/script/ ディレクトリの下にあります。スクリプトの名前は myscript.sh です。このスクリプトを実行して、出力も取得できます。このスクリプトの cronjob を毎日朝 6:30 に設定しようとしています。私はルートユーザーとしてこれを行っています。次の手順を実行しましたが、出力が得られません。

crontab -e
30 06 * * * sh /u01/software/aditya/script/myscript.sh >> /u01/software/aditya/hello.log
:wq

しかし、hello.log ファイルに更新がありません :( . 助けてください….

4

2 に答える 2

1

最初に、通常は にある cron ログ ファイルを確認します/var/log/syslog。次のようなエントリがあるはずです

Sep 17 06:30:01 localhost CRON[17725]: (root) CMD (sh /u01/software/aditya/script/myscript.sh >> /u01/software/aditya/hello.log)

そうでない場合、スクリプトは実行されていません。これは、壊れたcrontabファイルが原因である可能性があります。このファイルは常に改行で終わるようにしてください。誤って削除してもファイルが壊れないように、最後に複数挿入することをお勧めします。

この行がログ ファイルに存在する場合、スクリプトは実行されていますが、出力は生成されていません。これは、 を介して実行されている場合に異なる環境が原因で発生する可能性がありますcron

また、 stderrではなく、stdout>>のみをリダイレクトすることに注意してください。stderrもリダイレクトする場合は、行末に追加します。2>&1

于 2012-09-17T08:16:59.403 に答える