2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

日本語プログラミング言語「なでしこ」Advent Calendar 2022

Day 21

CRONとなでしこの華麗な連携 - 毎月1回自動でフォルダを作成する

Last updated at Posted at 2022-12-20

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+なでしこ が威力を発揮するのです。

プログラム

次のような、なでしこのプログラムを作ります。

mkdir.nako3
基本名=(システム時間を「経理/YYYY年/MM月」で日時書式変換)。
「{母艦パス}/{基本名}/レシート」のフォルダ作成。
「{母艦パス}/{基本名}/現金管理」のフォルダ作成。
「{母艦パス}/{基本名}/請求書」のフォルダ作成。

このプログラムを実行すると、以下のように経理/2022年/12月/xxxのような3つのフォルダを作成します。

mkdir.png

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/
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?