CRONとは?
Linux/macOSには、CRONというスケジュール実行のための仕組みがあります。Windowsのタスクスケジューラにあたるものです。これを使うと、毎月1回**する、毎時間1回**するといった定期実行が可能になります。
今回は、macOSやLinuxで、なでしこのプログラムを定期処理を実行する方法を紹介します。
「なでしこ」とCRONがどう関係するの?
なでしこ3のPC版は、コマンドラインから軽快に実行できるので、CRONになでしこのプログラムを指定しておけば、定期的にプログラムを実行できます。
例えば、「毎月1回自動でフォルダを作成する」という処理を行うことが可能です。
シチュエーション
毎月、会社の経理処理のために、レシートなど経費の精算データを保存するフォルダを作って整理しているとします。
その際、次のような3個ほどのフォルダを作るとします。例えば、2022年12月であれば、次のようなフォルダを作成します。
経理/2022年/12月/レシート
経理/2022年/12月/現金管理
経理/2022年/12月/請求書
もちろん、フォルダ3つくらい作るのは面倒ではないのですが、毎回微妙に異なる名前のフォルダを作る人がいて、統一されなくて困るという場合もあります。
プログラムを作るメリットというのは、「面倒な処理を自動化できる」することだけでなく、「手順をあらかじめ決めることができる」ことも含まれます。
経理処理はWindowsなんじゃないの?
その通りで、その場合には下記のプログラムを、タスクスケジューラで実行するように設定すればOKです。
ただし、オフィスの共有PCに大容量ストレージがつながれており、そこにアクセスして経理データを保存するという場面を想定しています。その際、その共有PCに安価なRaspberry Piを選択したという想定なのです!
また、Windows7とかサポート期限が切れた余ったPCに、Ubuntuなどの無料OSをインストールして、共有PCとして使うという場合もあるでしょう。
Raspberry Piでも、Ubuntuでも、なでしこのPC版を快適に動かせます。
Linuxを使う場合、CRON+なでしこ が威力を発揮するのです。
プログラム
次のような、なでしこのプログラムを作ります。
基本名=(システム時間を「経理/YYYY年/MM月」で日時書式変換)。
「{母艦パス}/{基本名}/レシート」のフォルダ作成。
「{母艦パス}/{基本名}/現金管理」のフォルダ作成。
「{母艦パス}/{基本名}/請求書」のフォルダ作成。
このプログラムを実行すると、以下のように経理/2022年/12月/xxx
のような3つのフォルダを作成します。
CRON
CRONに上記のプログラム「mkdir.nako3」を登録します。ターミナルを開いて以下のコマンドを実行します。
crontab -e
そして、以下のように指定します。これは、毎月1日の朝10:00にプログラムを実行します。
00 10 1 * * (cnako3のパス) (プログラムのパス)/mkdir.nako3
CRONは便利で、ほかにも、いろいろな指定が可能です。以下が参考になります。
macOSの場合はセキュリティの設定が必要
なお、macOSの場合は、以下の手順が必要。cronにフルディスクアクセス権限を付与する必要があります。
- 「システム環境設定⇒セキュリティとプライバシー⇒フルディスクアクセス」を開く
- 「+」ボタンをクリック
- [command]+[shift]+[G]キーを押して、「/usr/sbin/cron」を選択。
- (参考) https://ageo-soft.info/knowhow/mac_knowhow/6980/