[Linux] cronでスケジュールを登録し、自動実行させる方法・設定

0 件のコメント


[Linux] cronでスケジュールを登録し、自動実行させる方法・設定
目的

手作業で定期的に実行しているプログラムをcronで自動実行させ、作業を漏れ無く実施するよう自動化する

目次
  • 1. cronってなに?(。・ω・。)
  • 2. 3通りのcronの設定方法
    ① crontabコマンド
    ② ファイル直接編集
    ③ スクリプト格納
  • 3. cron設定ファイルの書き方
  • 4. 起動ログの確認方法
1. cronってなに?(。・ω・。)

Linuxのスケジューラ機能です(Windowsでいう「タスクスケジューラ」に該当するもの)。事前にスケジュールを登録しておけば、決まったタイミングで決まったお仕事をしてくれるので、作業実施忘れを防いだり、工数削減に役立ちます(。・ω・。)

2. 3通りのcronの設定方法(① crontabコマンド)

下記コマンドを打つと、cronの設定ファイルが開きます。また、rootユーザでログイン時や、sudoでルート権限ログインをすれば、他のユーザのcronの設定もできます。ちなみに、現在の設定を確認する際は「crontab -l」コマンドで確認できます。

# cronタブコマンドの利用方法
crontab -e

# 他のユーザのcron設定方法
crontab -u [ユーザID] -e
2. 3通りのcronの設定方法(② ファイル直接編集)

下記ファイルを編集することで、設定ファイルを直接編集できます。

# cronファイルを直接編集する
vim /etc/crontab
2. 3通りのcronの設定方法(③ スクリプト格納)

下記cronフォルダにスクリプトを格納するだけで、定期実行されます(。・ω・。)

# 下記フォルダに格納することで、自動的にスクリプトが実行される
/etc/cron.hourly  # 1時間1回
/etc/cron.daily  # 1日1回
/etc/cron.weekly # 1週間1回
/etc/cron.monthly # 1ヶ月1回

ちなみに上記フォルダに格納した際の実行時間は、crontab -e にて確認できます。

# crontab -e
 ...
 01 * * * * root run-parts /etc/cron.hourly
 02 4 * * * root run-parts /etc/cron.daily
 22 4 * * 0 root run-parts /etc/cron.weekly
 42 4 1 * * root run-parts /etc/cron.monthly
 ...
3. cron設定ファイルの書き方

cron設定ファイルの書き方は、まとめると下記のとおりです。

  • 「分 時 日 月 曜日 コマンド」の並びで設定
  • 「* = 毎」の意味
  • 「-」で数字をつなげると、範囲指定
  • 「,(カンマ)」で区切るとその度
  • 「/数字」で[数字]おきに実行

以上です。。って、わかりにくいですよね(ノд・。)いくつか設定例を紹介します!

30 21 * * *  # 21:30に実行
0 12 * * *  # 12:00に実行
0 12 * * 1  # 毎週月曜の12:00に実行
0,30 12 * * 0,2,3  # 毎週日・火・水曜の12:00と12:30に実行
0-10 17 1 * *  # 毎月1日の17:00から17:10まで1分毎に実行
0 17 * * 1-6  # 月曜日から土曜まで17:00に実行
*/10 * * * *  # 10分おきに実行
0 */1 * * *  # 毎時0分に1時間おきに実行
* 1 * * *  # 1:00から 1:59まで 1分おきに実行
2 8-20/3 * * * # 8時〜20時までの間、3時間おきに、2分に実行
4. 起動ログの確認方法

cronの起動ログを確認する際は、下記コマンドにて確認可能です。

# cron起動ログを確認するコマンド
tail -f /var/log/cron

# 10行以上表示させる場合
tail -n [行数] -f /var/log/cron

# 該当の文言が入ったログのみ表示する場合
tail -n [行数] -f /var/log/cron | grep [文言]

0 件のコメント :

コメントを投稿