なお、最近は cron の代わりに systemd タイマーを利用します。
crontab -e
39 * * * * touch /tmp/test.txt
関連記事:Linux の基本機能 | |||||
---|---|---|---|---|---|
学習ロードマップ | |||||
---|---|---|---|---|---|
cron の設定
cron は crontab コマンドで設定します。
cronie (crontab) をインストール
crontab は cronie パッケージに含まれるので、cronie をインストールします。
sudo dnf install cronie -y
設定ファイルの編集 -e
crontab -e で設定ファイルを編集できます。
crontab -e
39 * * * * touch /tmp/test.txt
フィールドは前から順番に以下の意味を表します。
フィールド | 値 |
---|---|
分 | 0-59 |
時 | 0-23 |
日 | 1-31 |
月 | 1-12 |
曜日 | 0-7 (0 または 7 が日曜) |
コマンド | 任意のコマンド |
設定の反映・再起動について
設定の反映に再起動は不要です。cron が自動で最新の設定をロードします。
なんらかの理由で再起動したい場合は、systemctl で再起動できます。
sudo systemctl restart crond
cron の動作確認
$ ls -l /tmp/test.txt -rw-r--r-- 1 ec2-user ec2-user 0 6月 26 10:39 /tmp/test.txt
cron により、39 分に自動で touch /tmp/test.txt コマンドでファイルが作成されました。
cron のログを確認
cron のログの場所は /var/log/cron です。
sudo less /var/log/cron
Jun 26 10:39:01 ip-192-0-2-1 CROND[10000]: (user) CMD (touch /tmp/test.txt)
設定の確認 -l
crontab -l で cron の設定ファイルを確認可能です。
crontab -l
39 * * * * touch /tmp/test.txt
設定ファイルのパス
設定ファイルの実体は /var/spool/cron/<ユーザー名> に存在します。
設定の削除 -r
crontab -r で cron の設定ファイルを削除可能です。
crontab -r
sudo ls /var/spool/cron/
anacron
anacron と cron の違い
anacron と cron の主な違いは以下です。
- 電源が切れている等でスケジュールが未実行であれば、起動時に実行
- 指定した時間にランダムな幅を持たせられる (同時にスケジュールが集中することを避ける)
これらの特徴は systemd タイマーにも取り込まれているので、RHEL 9 以降は systemd タイマーを使いましょう。
関連情報
学習ロードマップ | |||||
---|---|---|---|---|---|
関連記事:Linux の基本機能 | |||||
---|---|---|---|---|---|
Linux カーネルの機能 | |||
---|---|---|---|
ネットワークのコマンド | |||
---|---|---|---|
関連記事:サーバー | ||||
---|---|---|---|---|