0

30分ごとにcrontabにスクリプトを追加しました。行は次のようになります。

  */30 * * * * root perl /root/perl.pl

上記のスクリプトでは、システム コマンド「top」が実行され、ログ ファイルに出力されます。

手動で実行すると、正常に実行されます。しかし、crontab を介して実行している間は、目的の結果が表示されません。誰かがこれで私を助けてください。ありがとうございました。


上記の perl スクリプトのコマンドは次のとおりです。

 $top = `sudo top`;

私が得ているエラーは次のとおりです。

sudo: sorry, you must have a tty to run sudo

コマンドを sudo から visudo に変更しました。しかし、まだ問題は残っています。

4

2 に答える 2

0

cron でフル パスを使用する必要があります (フル パスwhich perlを見つけるために使用します)。

*/30 * * * * root /usr/bin/perl /root/perl.pl 

またはさらに良いことに、を使用してスクリプトを実行可能にしchmod +x、インタープリターをスクリプトの先頭に追加して、#!/usr/bin/perl -wcron から直接呼び出します。

*/30 * * * * root /root/perl.pl 

また、perl スクリプトに問題がある場合は、このように cron から結果を出力できます。

*/30 * * * * root /root/perl.pl > /tmp/myscript.log
于 2013-09-13T07:53:48.110 に答える