※有料会員になるとこの動画をご利用いただけます
詳しい説明を読む
#10:crontabでジョブスケジューリング
このチャプターでは、crontabコマンドを用いて、ジョブスケジューリングする方法を学習します。
- ジョブスケジューリングできる
13 8 * 12 6 echo paiza >> ~/test.txt
のように記述して、タスクを追加する- 【 書式 】
- <分> <時> <日> <月> <曜日> <コマンド>
- 分: 0 - 59
- 時: 0 - 23
- 日: 1 - 31
- 月: 1 - 12 / jan - dec
- 曜日: 0 - 7 / sun - sat / ※ 0, 7 が日曜日
- コマンド: 任意のコマンド
- 【 便利な日時の指定方法 】
- *
- いつでも
- 例:
13 8 * 12 6 ...
- 12 月の金曜日の 8:13 に...
- A1-AN
- A1 から AN の連続した値
- 例:
0 23 1-5 ...
- 月曜日から金曜日の 23:00 に...
- A, B, C
- A か B か C
- 例:
0,15,50 ...
- 毎時 0 分、15 分、50 分に...
- */A
- A に一度
- 例:
0 4 /2 * ...
- 2 日に一度、4:00 に...
- *
- 動画内では、広く使われている 6 つのブロックで構成されている書式を紹介しました
- ただ、
/etc/crontab
にデフォルトで設定されているタスクのなかに、7 つのブロックで設定されているタスクがあるように、例外もあります
25 6 * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
- これらのタスクは、
root
が、上で紹介している <曜日> <コマンド> の間に入っていると捉えると考えやすいです - そして、
root
は、実行者を root に指定しています - つまり、
25 6 * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
では、「毎日 06:25 に、root
ユーザとして、test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
を実行する」という意味になります - では、
test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
の意味は、というと、/usr/sbin/anacron を実行できるなら実行し、実行できないなら/etc/cron.daily
にある cron ジョブを実行する、という意味になります
- anacron については、後のチャプターで学習します
- ここではすべての例外について紹介することはしませんが、分からないタスクの書式が出てきても、調べると見つかるケースが多いです