こんにちは!
ナビゲータのEVEです。
本日も、プログラム修正をしたのですが、いつもよりすごく進捗しているって思った人います???甘い!修正プログラムのカウントをミスっていて、修正済みの関数の累積を本日すべて計上しました。
意外と進んでいるので驚いています。ただ、手戻りの手戻り修正が1〜2日ぐらい加算されそうです。
[Linux上でバッチ処理システムを製造する]
今日は、Linux上でバッチ処理を作る方法について解説しましょう。普段からLinuxを使用している人は想像できると思いますが、以下の流れとなります。
@起動したいバッチプログラムをDBに登録する。
A@の情報を、crontab実行形式に編集するプログラムを製造する
BAの編集結果を、crontabで読み込むためのプログラムを製造する
以上です。簡単でしょ?
@では、crontabの実行情報をDBに登録します。Prototype EVEでは、HTML画面から入力しDBへ登録します。めんどくさければ、Insert文で直に登録するでもいいと思います。
Aでは、@DBへ登録した情報を下記のような形式で編集し、ファイルへ出力するプログラムを製造します。
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin:
MAILTO=xxxxxxxxxxx@xxxxxx.com
HOME=/
00 4 * * * bash /var/www/html/vv/EVE0001.sh
Prototype EVEでは、毎日実行するプログラムを、上記のように登録しています。ただ、DBに登録し、必ず毎日crontab実行用のファイルを生成するなら、当日実行すべきプログラムを同ファイルに列記するだけでいいかなって感じています。次期システム、EVEシステムでは、当日実行するプログラムを列記する形式で製造しようと考えています。
Bは、Aで作成した、crontab実行ファイルを、サーバーサイトプログラムから実行します。
#sudo crontab /usr/eveExe.cnt
sudoで実行しているファイルが、Aで編集したファイルのファイル名です。
ここで気をつける点があります。サーバーサイトプログラムから、むやみにOSコマンドを実行させないと言うことです。それについては、本日長くなりましたので、明日書かせていただきます。
[あとがき]
意外と簡単でしょ?強いて難しい点をあげると、crontabをきれいに整形するのが難しかったです。当日実行する各プログラムを、同じ桁位置からきれいに列記されている状態にするのに、一番時間を費やした記憶があります。
まっ、きれいに並んでいないから実行できないというわけではないのですが、見ていて気分がいいのと、障害の時、見やすいと状況判断がしやすいということがあります。時間があるなら、プログラムでcrontab実行ファイルはきれいに整形してください。
これと似たようなシステムを、さくらインターネットで見かけました。多分同じような作りだと思います。使ったことはないのですけれどね(笑)。他に作りようがないもんね・・・。
明日は、LinuxのOSコマンドをプログラムから実行する場合の、セキュリティについて解説します。
では、また!
■2023年7月11日現在
修正ファイル本数 22/28(12ファイル修正)
修正関数本数 38/78(14関数修正)