【Macで自動化】定期実行させたいプログラムはcronを使おう【Macに働いてもらう方法】

Not image

みなさん、こんにちは。

早速ですがみなさんは、「このプログラムを定期的に自動で実行されると色々と便利なのにな・・・」と思ったことはありませんか?

上のように考えたとことがない方でも、ちょっと想像してみてください。

もし今現在、あなたが定期的にやるルーティン的なタスクを手動でやっていたとしましょう。

そこで「ルーティン的なことはなるべく自動化したいな」という考えが生まれてきます。

いざ自動化するプログラムができたとしましょう。それでもまだ、コードを実行する手順を自分が定期的にやらなくてはいけないとします。

そんなとき、今回ご紹介するPCに特定のプログラムを定期実行する設定するとしたら、とても便利なことになると思いませんか?

その結果、自分の本来やるべきタスクに集中できて、生産性は飛躍的に上がるでしょう。

これが今回の記事の最大のメリットになります。

今回紹介するのは、Unix/Linux系OSのコマンドである、「cron」というものです。(MacOSのターミナルもUnix/Linux系のコマンドが使えます。)

今回の記事では、MacOSでcronを設定する方法をまとめていきますが、他のOSでも同じような定期実行設定はありますので、ご参考になると思います。

以下からは、「cronとは何か」から「cronでプログラムを定期実行する方法」をご紹介していきます。

そもそもcronとは何か?

cronというのは、コマンドを通してプログラムを実行したり、定期的に実行したいプロセスを行うデーモンプロセスというものです。

デーモンプロセスというのは、パソコンのバックグランンドで動いているプログラムのことです。

Unix系OS全般に備わっている「crontabコマンド」を使って、cronに実行したいコマンドなどを設定することができます。

今回はMacOSを使う前提になるので、今回は「crontabコマンド」を使うことになります。

cronの使い方→あなたの代わりにMacに働いてもらう手順

crontabの書式・オプション

crontabコマンド書式

crontab [オプション]

オプション書式 オプション説明
-e cron設定を編集・登録
-l cron設定リストを表示
-r cron設定を削除
-u ユーザーを指定する

crontabコマンド自体は「crontab」+オプションという感じで簡単に操作することができます。

「crontabコマンド」+「-eオプション」で設定を編集することができるのですが、その設定にも書式があるので先に確認していきましょう。

設定編集・登録の書式

分 時 日 月 曜日 [コマンド/プログラムファイル名]

書式は半角空けて書くのがポイントです。

分・時・日などの設定は以下のような設定方法になります。

対象 内容説明
0~59で設定
0~23で設定
1~31で設定
1~12で設定
曜日 0~7で設定。0=日曜,1=月曜…6=土曜,7=日曜
, 分,時,日他を複数で指定する
分,時,日他を範囲で指定する
/ 分,時,日他を間隔で指定する
* ワイルドカード(全てを表す)

分・時・日・月・曜日の設定はなんとなく理解できるかと思いますが、「カンマ(,)・ハイフン(-)・スラッシュ(/)・アスタリスク(*)」の設定がよくわからないと思いますので、以下の手順の中で例を挙げて説明していきます。

手順1:crontab -eコマンドでcronに設定編集&登録

cronに定期実行を登録するには以下のようなコマンドを順番に実行してみてください。

上の設定では毎日・毎月・毎曜日の12時00分に「echo “Hello, World!”」コマンドが実行されるという内容です。

手順2:cronに設定が登録されているか確認

登録されているかどうかの確認は、「crontab -l」というコマンドを実行すれば、先ほど登録したcron設定が表示されると思います。

確認ができましたら手順終了です。

また実行されたコマンドの出力結果などは「mail」コマンドなどをすると確認できるかと思います。

細かい使用例

カンマ(,)・ハイフン(-)・スラッシュ(/)・アスタリスク(*)・プログラムファイルを実行する設定をまとめていきます。以下のコードをご参照ください。

上のようにカンマ(,)・ハイフン(-)・スラッシュ(/)・アスタリスク(*)などの設定は、慣れるまで時間がかかるかもしれませんが気長にいきましょう。

お疲れ様でした。

まとめ

今回は、cronを使ってPC(Mac)に仕事を任せてしまおうという考えのもと進めてきました。

PCを使っている以上、自動化できるような場面も多々あると思うので、「あ!これ自動化できるじゃん!」というものは、今回紹介したcronを使ってみてください。

ルーティンワークを自動化されることによって、読者さんがする活動がより創造的なものになることを願います!ありがとうございました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です