Unix システムの下で ..
毎週土曜日に perl スクリプト A.pl を実行したいと考えています。以下のコードを試してみましたが、動作します。しかし、ビジーループで時間をチェックし続けない他のコードが動作する可能性はありますか?
while(1)
{
@Time = localtime();
if( $Time[6] eq "6" )
{
`perl A.pl`;
}
}
Unix システムの下で ..
毎週土曜日に perl スクリプト A.pl を実行したいと考えています。以下のコードを試してみましたが、動作します。しかし、ビジーループで時間をチェックし続けない他のコードが動作する可能性はありますか?
while(1)
{
@Time = localtime();
if( $Time[6] eq "6" )
{
`perl A.pl`;
}
}
Unix では、定期的にプログラムを実行するのが の仕事ですcron
。ユーザーは、コマンドを使用して自分のジョブをcrontabに編集できます (環境変数をお気に入りのエディターに設定します)。crontab -e
EDITOR
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
次のようにcrontabに入れます。
0 0 * * 6 /path/to/perl A.pl
もちろん、これは Unix を使用していることを前提としています。Windowsについてはわかりません。
unix/linux システムを使用している場合は、A.pl スクリプトを crontab に入れることができます。