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)
ユーザ実行ユーザ名
コマンド実行したコマンドやシェルスクリプト

動作確認手順

  1. CentOS8 1号機にログイン
  2. サービスの起動確認
  3. スケジュール設定
  4. 動作確認
  5. スケジュール削除

動作確認

# 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を実行するときは極めて慎重に行いましょう。

設定ファイル

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 * * * * root10分おきに実行
10-20 * * * * root echo ok > /tmp/cron.txt毎時10分から20分まで1分おきに実行
10,20 * * * * root echo ok > /tmp/cron.txt毎時10分と20分に実行

以上、お疲れさまでした。