linuxサーバの管理をしていると、cronを触る機会があると思うので、
cronとは何か、使い方、書式なんかをメモ。
Contents
cronとは
cronとは、UNIX系OSで動くデーモンの一つで、
決めた時間や日付で定期的にプログラムを実行してくれるものだ。

自分でプログラムを実行しなくても、指定した時間になると勝手にプログラムを起動してくれるので、ログローテートとかバックアップとか、定期的にやってほしい作業にcronを設定しておくと便利だ。
- UNIX系のOSで動くデーモン(crond)の一つ
- 決めた時間や日付で定期的にプログラムを実行してくれる
cronの書式
cronは「crontabファイル」に書き込んでいく。
crontabファイルはログインしているユーザごとにを作成できる
crontabファイルの開き方
下記のコマンドで現在のユーザでのcronを作成(初回のみ)・編集できる。
# crontabファイルを編集する
crontab -e
※crontabの書式に関しては、本記事の後半にて紹介。
crontabファイルの書式
crontab -e コマンドでcrontabファイルを開いたら、cron設定を記述していく。
以下のような書式で、一行に付き一つのcronを設定可能だ。
# cronの書式(分 時 日 月 曜日 実行コマンド)
* * * * * [実行コマンド]
左から「分」「時」「日」「月」「曜日」「実行コマンド」で設定する。半角スペースで区切ろう。
以下は例として、20日の12時56分に、/var/www/test.shを実行するcronの設定だ。
# 20日の12時56分に、/var/www/test.shを実行
56 12 20 * * sh /var/www/test.sh
cronの設定値
cronの各項目の基本的な設定値は以下。全部数字で指定する。
項目 | 値 |
---|---|
分 | 0-59 |
時 | 0-23 |
日 | 1-31 |
月 | 1-12 |
曜日 | 0=日、1=月、2=火、3=水、4=木、5=金、6=土、7=日 |
cronの便利な指定方法
cronのちょっと便利な指定の仕方は以下
方法 | 例 | 説明 |
---|---|---|
リスト | 10,20,30 | コンマで区切った値に対して全て実行 |
範囲 | 1-3 | ハイフンで繋げた範囲の値に対して全て実行 |
共存 | 1,3,6-9 | 上記「リスト」と「範囲」は共存させることができる |
間隔 | */10 | スラッシュの後に指定した値毎で実行 |
cronのサンプル
cronの使い方がわかったところで、実際にパターン別に、いくつかcronの設定例を紹介していく。
①基本的なcronの使い方
10分になったら動くcron
10 * * * * sh /var/www/test.sh
13時08分になったら動くcron
08 13 * * * sh /var/www/test.sh
20日の12時56分に動くcron
56 12 20 * * sh /var/www/test.sh
5月3日の24時00分に動くcron
00 24 3 5 * sh /var/www/test.sh
月曜日の13時00分に動くcron
00 13 * * 1 sh /var/www/test.sh
②便利指定を使用したcronの設定
10分と20分と30分に動くcron
10,20,30 * * * * sh /var/www/test.sh
15日から20日の間、13時00分に動くcron
00 13 15-20 * * sh /var/www/test.sh
5日、10日、15日から20日の間、13時00分に動くcron
00 13 5,10,15-20 * * sh /var/www/test.sh
1時間毎に動くcron
* */1 * * * sh /var/www/test.sh
crontabコマンドの使い方
cronの書き方序盤で登場したcrontabコマンド。
これはcrontabファイルという、cronの設定を書くファイルを作成・編集するためのコマンドだ
crontab [- u user] {-l|-r|-e}
オプション | |
---|---|
-e | crontabを作成(初回)・編集する。通常は、viエディタが起動する |
-l | crontabファイルの内容を表示する |
-r | crontabファイルを削除する |
-u user | userで指定したユーザのcrontabファイルを操作の対象とする。rootユーザのみ使用可能 |
まとめ
cronとは、UNIX系OSで動くデーモンの一つで、決めた時間や日付で定期的にプログラムを実行してくれるもの。
参考:https://e-words.jp/w/cron.html
[…] (UNIX) cronとは、使い方、書式など […]