ウェブ制作
プログラミング
Macのローカル環境で
Cronの設定をする方法!
完凸ウサギフクロウ@プログラマー
2025.1.27
#Oookey_blog_006
こんにちは、完凸ウサギフクロウ@プログラマーです!
今回はCronについて、設定方法や小技などをご紹介します!
本記事は以前、自分用にまとめたメモをベースにしたものです。
もしかしたら記事の内容は環境によっては動作しないことも考えられます。
自身の環境と相談した上でご参考にしてください。
よければ最後まで見ていただけると嬉しいです!
Cronとは
Unix系OSに標準で備わっているスケジュール管理ツールのことで、
設定したスケジュールに従い、定期的にプログラムを実行することができます。
スケジュールの設定には、crontabコマンドを使用します。
・crontab
Cronの設定を行う際に使用するコマンド及び設定ファイルのこと
主な動作環境
・MacOS(Unix系OS)
スケジュールの設定方法
1. ターミナルを起動
Macのターミナルを起動させます。
2. Cronの設定画面を開く
ターミナルを起動させた後、下記のコマンドを実行してCronの設定画面を開きます。
Copied!
crontab -e
3. スケジュールを設定
Cronの設定画面を開いたら、viというUnix系OSでよく使われている
テキストエディタを操作して、スケジュールの設定を行っていきます。
viの操作方法
viには、
文字入力ができるインサートモードと、
コマンド入力ができるコマンドモードの
2つのモードがあります。
インサートモード中はカーソルの移動が行えず、
コマンドモード中は文字の入力が行えないため、
下記のコマンドで2つのモードを切り替えながら操作を行います。
・切替コマンド
iキー | インサートモードに切り替える |
---|---|
escキー | コマンドモードに 切り替える |
コマンドモード時に使用できる
基本的なコマンドは下記になります。
・移動コマンド
h | 左に移動 |
---|---|
j | 下の行の先頭文字に移動 |
k | 上に移動 |
l | 右に移動 |
※矢印キーでも可能
・操作コマンド
x | 1文字削除 |
---|---|
yy | 1行コピーしクリップボードへ格納する |
dd | 1行切り取りしクリップボードへ格納する、または1行削除 |
p | クリップボードの内容をカーソル行の下の行に貼り付ける |
:q | ファイルを閉じる。変更があった場合はメッセージが表示され、閉じることができない |
:q! | ファイルを閉じる。変更があった場合は変更を破棄する |
:w | ファイルを保存する。viは終了しない |
:wq | ファイルを保存し、viを終了する |
インサートモード時に使用できる
基本的なコマンドは下記になります。
・操作コマンド
i | 現在のカーソルの位置に文字を挿入する |
---|---|
R | 現在のカーソルの位置から文字を上書きする |
A | 現在のカーソルの行の最後に文字を追加する |
O | 現在のカーソル行の前の行に行を挿入する |
o | 現在のカーソル行の次の行に行を挿入する |
Cronの書式
viの操作ができたら、次にスケジュールの設定を行います。
基本の形は下記の通りとなります。
Copied!
分 時 日 月 曜日 [コマンド/実行したいファイルの絶対パス]
書式の前半部分(分 時 日 月 曜日)には、
コマンドを実行したい日付・時間の値を設定します。
設定できる値の範囲は下記の通りとなります。
分 | 0〜59 |
---|---|
時 | 0〜23 |
日 | 1〜31 |
月 | 1〜12 |
曜日 | 0〜7 (0と7は日曜日) |
※特に指定する必要のない項目には、
「*(ワイルドカード)」を設定します。
・設定例
例1)固定指定(6月20日 15時10分に実行)
Copied!
10 15 20 6 * [コマンド/実行したいファイルの絶対パス]
例2-1)間隔指定(毎分おきに実行)
Copied!
* * * * * [コマンド/実行したいファイルの絶対パス]
または
Copied!
*/1 * * * * [コマンド/実行したいファイルの絶対パス]
例2-2)間隔指定(5分おきに実行)
Copied!
*/5 * * * * [コマンド/実行したいファイルの絶対パス]
例3)複数指定(10時30分と10時40分に実行)
Copied!
30,40 10 * * * [コマンド/実行したいファイルの絶対パス]
例4)範囲指定(午前2時5分、午前3時5分、午前4時5分、午前5時5分に実行)
Copied!
5 2-5 * * * [コマンド/実行したいファイルの絶対パス]
書式の後半部分には、
「実行させたいコマンド」または
「実行したいファイルの絶対パス」を
指定します。
・設定例
例1)コマンド
Copied!
* * * * * echo "Hello"
例2)ファイルの絶対パス
※ファイルを実行する場合は、ファイルの種類に合わせてコマンド指定します
Copied!
* * * * * [コマンド] [実行したいファイルの絶対パス]
・シェルスクリプト
Copied!
* * * * * bash [実行したいファイルの絶対パス]
・PHP
※ローカル環境でMAMPを使用している場合
Copied!
* * * * * /Applications/MAMP/bin/php/[現在のPHPバージョン]/bin/php
4. :wqコマンドで変更を保存し、viを終了
スケジュールの設定が完了したら、
:wqコマンドを実行し、
Cronの設定画面を閉じます。
※「ESCキー」でインサートモードから
コマンドモードに切り替えることを
忘れないように注意
5. 設定したスケジュールを確認
下記のコマンドを実行して、設定した
スケジュールの確認をすることができます。
Copied!
crontab -l
まとめ
以上、Macのローカル環境でのCronの設定方法でした。
この記事が参考になれば幸いです!
それでは、また次の記事で。