Loading

『Linux』cronでスケジュールを登録&自動実行させる方法・設定まとめ


Linux上で定期的にプログラムを実行させる際、cronと呼ばれる仕組みを活用します。今回は、cronとは何か、また設定方法をご紹介します。

cronとは?

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

cron設定方法

A. crontabコマンド

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

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

# 他のユーザのcron設定方法
crontab -u [ユーザID] -e

B. ファイル直接編集

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

# cronファイルを直接編集する
vim /etc/crontab

C. スクリプト格納

下記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
 ...

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分に実行

起動ログの確認方法

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

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

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

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


Linux関連記事

Linux関連のその他記事もまとめてますので、是非お立ち寄りください(。・ω・。)

ふぇにば|PhoEniBiR

投稿者プロフィール

わくわくしてて偉い系VTuver ふぇにば です。
少しでもお役に立てておりましたら嬉しいです(。・ω・。)

関連記事

  1. 『Windows10』ISOエディションのWindows10・Windows10…

    2017.01.04
  2. JAVAアプリとPHPアプリを共存させる!~Apache tomcat と Ap…

    2016.05.22
  3. 『Windows』フォルダのアクセス権限の違い(共有タブ・セキュリティタブ)

    2020.05.17
  4. [SQLServer] 選択したDBのテーブル名・カラム名一覧を取得するquer…

    2020.05.17
  5. [SQLServer] 対象DBに存在する全テーブルのデータ件数取得クエリ

    2020.05.17
  6. Azureで無料のWordPress環境を構築する

    2016.04.13

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

CAPTCHA


New Article

  1. ChatGPT × StableDiffusion
  2. ChatGPT VS コンサルタント
  3. 注目したい5つのテクノロジートレンド2023
PAGE TOP