Cronとは
Cron(クーロン)は、タスクスケジュール機能のことです。Cronのスケジュール機能を使えば、指定した時間にコマンドやシェルスクリプトを実行することができます。時時間は、分、時、日にち、曜日を指定することができます。
スケジュールの設定方法
分 時 日 月 曜日 ユーザ コマンド
5 16 * * * root echo "cron OK" > /tmp/cron.txt
対象 | 値 |
---|---|
分 | 0~59 |
時 | 1~23 |
日 | 1~31 |
月 | 1~12またはjan~dec |
曜日 | 0~7またはsun~sat(0がsun) |
ユーザ | 実行ユーザ名 |
コマンド | 実行したコマンドやシェルスクリプト |
動作確認手順
- CentOS8 1号機にログイン
- サービスの起動確認
- スケジュール設定
- 動作確認
- スケジュール削除
動作確認
# 1.CentOS8 1号機にrootでログイン
# 2.サービスの起動確認
# Active:がactiveになっていることを確認する
[root@localhost ~]# systemctl status crond
● crond.service - Command Scheduler
Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
Active: active (running) since 金 2020-10-02 08:47:13 JST; 7h ago
# 3.スケジュールの設定
# スケジュールの確認
# デフォルトでは何もスケジュールされていません。
[root@localhost ~]# crontab -l
no crontab for root
# スケジュールの設定
# 動作確認として、指定した時間にテストファイルを作成するスケジュールを設定します。
# 時間については、5分後の時間を指定してください。
[root@localhost ~]# crontab -e
12 16 * * * root echo "cron OK" > /tmp/cron.txt
crontab: installing new crontab
# スケジュールの確認
# 設定したスケジュールが表示されることを確認する。
[root@localhost ~]# crontab -l
12 16 * * * root echo "cron OK" > /tmp/cron.txt
# 4.動作確認
# 指定した時間にテストファイルが作成されていることを確認する。
[root@localhost ~]# ll /tmp/cron.txt
-rw-r--r--. 1 root root 0 10月 2 16:12 /tmp/cron.txt
# 5.スケジュール削除
[root@localhost ~]# crontab -r
# スケジュールの確認
# 何も表示されないことを確認する。
[root@localhost ~]# crontab -l
no crontab for root
重要事項
crontab -r
crontab -rは、設定したcronを全て削除します。
間違って押してしまうと定義が全て削除されるため大変危険です。eとrが離接しているため、押し間違いをする可能性が高いです。
crontab -rを実行するときは極めて慎重に行いましょう。
設定ファイル1
crontabコマンドで設定したスケジュールは、/var/spool/cron/配下に保存されます。ここにあるファイルを編集してもスケジュールを設定することができます。crontab -eを押すと-rをしてしまうリスクがあるため、vi /var/spool/cron/rootなどをして、編集した方が安全だと思われます。
色々な時間の定義の仕方
記述例 | 説明 |
---|---|
5 21 * * * root echo ok > /tmp/cron.txt | 毎日21時5分に実行 |
* * * * * root echo ok > /tmp/cron.txt | 毎分実行 |
*/10 * * * * root | 10分おきに実行 |
10-20 * * * * root echo ok > /tmp/cron.txt | 毎時10分から20分まで1分おきに実行 |
10,20 * * * * root echo ok > /tmp/cron.txt | 毎時10分と20分に実行 |
以上、お疲れさまでした。