web-dev-qa-db-ja.com

複数のスクリプトを同時に実行する方法は?

5つの異なるスクリプトを毎週土曜日に3 PM=で実行し、これらすべてのスクリプトを1つのスクリプトに入れて、cronを使用して実行したいとします。

4
Debasish

これはいくつかの方法で実行できます。

単一のcronエントリ

0 15 * * 6 job1; job2; job3

セミコロンを使用すると、前のジョブが成功した(RC = 0)かどうかに関係なく、job2(およびjob3)が実行されることに注意してください。変更したい場合は、それらの間に&&を使用してください。

複数のcronエントリ

0 15 * * 6 job1
0 15 * * 6 job2
0 15 * * 6 job3

またはあなたが尋ねるように、それらを組み合わせる

1つのスクリプトと1つのcronエントリ:

#!/bin/sh
job1
job2
job3

Cron:
    0 15 * * 6 /path/to/above/wrapper-script.sh

上記と同じ注意がここに適用されます。 job2とjob3は順番に実行されます。必要に応じて、job1 && job2 && job3(またはいくつかの組み合わせ)に変更します。

&&||の詳細については、 シェルの制御演算子とリダイレクト演算子は何ですか? を参照してください。

7
Jeff Schaller

Crontab形式の説明は次のとおりです。

# 1. Entry: Minute when the process will be started [0-60]
# 2. Entry: Hour when the process will be started [0-23]
# 3. Entry: Day of the month when the process will be started [1-28/29/30/31]
# 4. Entry: Month of the year when the process will be started [1-12]
# 5. Entry: Weekday when the process will be started [0-6] [0 is Sunday]
#
# all x min = */x

したがって、これによるとあなたの0 15 * * 6は毎週土曜日に15:00に実行されます。

0
malyy