
ページコンテンツ
用途
crontabでは、定期的にコマンドを自動実行します。apacheの定期的な再起動等で利用されます。定期的にジョブを実行するcronは、スケジュール管理をするデーモンであるcronとスケジュールを管理するcrontabで構成されています。cronデーモンは、1分毎に起動され、crontabファイルを確認し、実行スケジュールがあれば実行します。
ファイルの格納場所
- ユーザのcrontabファイル
/var/spool/cron - システム全体のcrontabファイル
/etc/crontab
/etc/cron.dディレクトリ配下のファイルもシステムのcrontabファイルとして利用される
構文
crontab [オプション]
書式
crontabファイルの書式は下記の通りです。指定時刻なるとコマンドが実行されます。
分 時 日 月 曜日 コマンド
フィールド | 内容 |
---|---|
分 | 0~59までの整数 |
時 | 0~23までの整数 |
日 | 1~31までの整数 |
月 | 1~12までの整数、又はjan~dec |
曜日 | 1~12までの整数、又はjan~dec |
コマンド | 実行すべきコマンド |
「#」がある行はコメントです。
「*」は全ての値にマッチします。
複数の値を設定する場合は、「,」で区切ります。
期間を指定することも可能です。
例)分の指定で、[0-59/5]と設定すると、0分~59分の間で5で割り切れる時間で実行されます。つまり、5分、10分、15分、20分、25分、30分、35分、40分、45分、50分、55分と5分おきに実行されます。
オプション
オプション | 説明 |
---|---|
-e | 登録されているスケジュール (cronジョブ)を編集 ※デフォルトに設定されているエディタでcrontabファイルが開かれるので、編集を行う。 |
-l | 登録されているスケジュール(cronジョブ)を表示 |
-r | 登録されているスケジュール (cronジョブ)を削除 |
-u ユーザ名 | 指定したユーザのスケジュールを処理 スーパーユーザのみが利用可能 |
使用例
[root@*********]# crontab -e
10 0 * * * sh hoge.sh
viと同じ編集操作で、実行処理の設定を行います。
- 「i」入力で編集モード
- 実行処理の設定
- 「Esc」
- 「wq」で保存
[root@*********]# crontab -l
10 0 * * * sh hoge.sh
crontabファイル
ユーザのcrontabファイル
ユーザのcrontabファイル は下記ディレクト配下に格納されます。crontabファイル は、crontabコマンドを利用して
/var/spool/cron/
システムのcrontabファイル
ユーザのcrontabファイルとは別に、システムのcrontabファイルが存在します。
/etc/crontab
一般的には、「/etc/crontab」ファイルから「/etc/cron.*」ディレクトリに置かれたファイルを呼び出すようにしています。
atとの違い
atは一度限りのジョブ予約ですが、cronは定期的にジョブを繰り返します。
cronのアクセス制御
cronコマンドを利用するユーザを制限することができます。下記ファイルの順で制限制御を行います。
- 「/etc/cron.allow」があれば、記載されているユーザのみcronを利用できる
- 「/etc/cron.allow」がなければ、「/etc/cron.deny」を参照し、記載されていない全てのユーザでcronを利用できる
- どちらのファイルもなければ、全てのユーザがcronを利用できる
関連記事
最近の記事
Linux以外のIT技術については、下記サイトにアクセスしてください。
気まぐれSE研究所(https://www.se-lab.yokohama/)