cronの設定方法についてよく失念するため、備忘録して記事にしておきます。自分のメモ用に残すため、わかりにくい部分などはご容赦ください。
またcrontabの設定例についてはこちらから参照できますのでよかったらコピペで流用してください。
Cronとは?
cronはバッチ処理などと呼称されているプログラムのことで、UNIX系OSで標準で備わっていることが多いデーモン(常駐プログラム)の一種です。Macでも利用することができます。
設定したプログラムを動かすシステム時間に応じて定期的に実行をかけてくれるプログラムになってます。
cronを設定するにはcrontab(cron tableの略)に実行したいファイル名やコマンドを記述しておくと定期的にcrond(cron daemonの略)が実行してくれる算段になってます。詳しくは下記サイトを参照してください。
参照元:http://e-words.jp/w/cron.html
下記では主にcrontabにどのような記述をすれば定期実行されるのかを詳しく紹介していきます。
crontabの設定方法について
crontabの実行コマンド(オプション)
crontabを参照、追加する場合はUNIX系OS環境のターミナル(CLI)で下記のコマンドを実行していきます。
基本は-e
と-l
しか利用しないです。また-r
は全削除になるため、一部を削除する場合は-e
を使います。
crontabファイルの記述方法
crontab -e
を実行したあとのMacの何も記述されていない状態は下記のキャプチャです。

この中に実行する内容を記述してきます。
このように記述すれば定期実行が可能になります。また複数の定期実行を記述する場合は改行をして記述してきます。
各項目の上限は以下の表のようになります。
分 | 時 | 日 | 月 | 曜日 | |
数値上限 | 0~59 | 0~23 | 1~31 | 1~12 | 0~7(0と7が日曜日) もしくは sun~sat |
毎分、毎時・・・実施したい場合はアスタリスク(*
)で埋めることで設定できます。
またcrontabではリストと範囲、共存、間隔値が指定できます。
設定例 | 説明 | |
リスト | 1,10,12 | 分で記載した場合は1分・10分・ 12分おきに実行されます。 月で記載した場合だと 1月・10月・12月に実行されます。 |
範囲 | 1-3 | 分で記載した場合1分・2分・3分の ときに実行されます。 |
共存 | 2,4-7 | リストと範囲を共存させた場合の設定 曜日で設定した場合、火曜・木曜・ 金曜・土曜・日曜で実行されます。 |
間隔値 | 1-5/2 | 範囲の中でも一定間隔で実行可能です。 時で記載した場合、1時・3時・5時 で実行されます。 設定例だと1-5の中で2ごとの間隔で 実行するという意味合いになります。 |
crontabの記載例
下記にコメントで解説を交えつつ記載してきます。
crontab記述後の反映・動作確認
設定反映
crontabはvimで開かれると思われるので、esc
キーを押し、:wq
で保存をしてください。※vimの入ってない環境等どんな挙動をするか知らないので間違っていたら申し訳ございません。
その後下記のコマンドでcrond
を再起動してcrontabの設定を反映してください。
動作確認
crondが起動しているかは下記コマンドで確認が可能です。
下記のディレクトリにログが吐き出されているか確認をおこないます。
まとめ
定期実行プログラムに関してcronが一番メジャーだと思いますが、そのほかにcrontabの管理ライブラリなどもあったりしますのでいつかその記事もかけたらと思ってます。
crontabの記述で迷った方、失念してしまった方などに本記事がお役立てできたら幸いです。
参照元