3

Unix システムの下で ..

毎週土曜日に perl スクリプト A.pl を実行したいと考えています。以下のコードを試してみましたが、動作します。しかし、ビジーループで時間をチェックし続けない他のコードが動作する可能性はありますか?

while(1)
{
        @Time = localtime();
        if( $Time[6] eq "6" )
        {
                `perl A.pl`;
        }
}
4

3 に答える 3

6

Unix では、定期的にプログラムを実行するのが の仕事ですcron。ユーザーは、コマンドを使用して自分のジョブをcrontabに編集できます (環境変数をお気に入りのエディターに設定します)。crontab -eEDITOR

crontab のフォーマットはcrontab(5)で説明されています。

 man 5 crontab

新しい cron ユーザーにとって最も一般的な落とし穴は、cron ジョブが最小限の環境で実行されることです。もPATHエクスポートされないため、プログラムで設定する必要がありPATHます。

では、プログラムの出力はどこに行くのでしょうか? stdoutまたはstderrのすべての出力は、アカウントにメールで送信されます。別の場所に置きたい場合は、crontab 行で出力をリダイレクトする必要があります。たとえば、次のような crontab エントリを使用します (注意: csh 構文ではなく、sh 構文です!):

# Quarter past 8 on Saturdays.
15 20 * * 6  /home/user/bin/A.pl >/home/user/A.stdout 2>/home/user/A.stderr
于 2013-06-01T13:23:52.977 に答える
5

次のようにcrontabに入れます。

0 0 * * 6 /path/to/perl A.pl

もちろん、これは Unix を使用していることを前提としています。Windowsについてはわかりません。

于 2013-06-01T13:14:51.053 に答える
1

unix/linux システムを使用している場合は、A.pl スクリプトを crontab に入れることができます。

于 2013-06-01T13:14:25.907 に答える