Data Collector Template

時々、かなり遠隔地の…いや物理的に遠いかどうかはともかく、滅多に訪問できないような場所にある… 計算機のデータを収集してくる必要があったりする。

もちろん、自分で直接行ければ話は早いのだろうが、 世の中大抵そうは問屋が卸さない。 で、若手を送りつけるのだが、そうすると必要なデータが取れていない…何て事が非常によくある。

まぁ、失敗の種は尽きない。

それならスクリプトを書いて…
うん、基本はそれなんだが。 そういうスクリプトを1から創り上げるのって面倒だよね。 特に、同じ一連の操作を n 回繰り返す…なんてヤツで、 nが操作ごとに違ったりすると面倒くささに結構イライラする。

面倒くさいのは、明らかにまじめにデザインすれば大幅に面倒が減ると判るからで、 イライラするのは、それが判る頃にはもう締め切り間際で凝っている場合じゃないから。

そこでっ!! (やっと本題かよ。前置き長いよ) Data Collector Template である。 いや、なんの事はない。bash 用のシェルスクリプトテンプレートだ。

やりたい事と、何回実行したいかを、予めこのスクリプトの配列に登録してやる。 すると、指定された順序どおりに、指定された回数、そのコマンドを実行する。

やりたい事が複雑な場合は、bash の function として定義して、そいつを呼び出すようにしてくれ。

実行結果を stdout に出すと、それは一定の命名ルールに従ったファイルに保存する。 このファイルを全実行の最後にかき集めて1つの tar.gz ファイルにしてくれる。 あなたの「使い」はこの tar.gz ファイルを1つ、回収してくればいいのだ。


中身は、現物を見たほうが早いと思う。 一応、使い方はコメントに書いてあるし、 基本構造は死ぬほど簡単だ。

逆に言うと、エラー処理は「全く」やっていない。 そこら辺は注意が必要だ。

きちんと理解した上で利用することをすすめる。 理解するために必要な時間は、これと同じ物を作る時間の半分以下ぐらいで済むと思う。 エラー処理をぶち込む必要があったとしても、 10分ぐらいは仕事が早く済むはずだ。

あと、このスクリプトは別に手品ではないので、 ターゲット環境にインストールされていないツールは使えない。

その中で最も重要なのは「Bash」だ。それも Bash3 以降。 Bashがないとこのスクリプトはそもそも動かない。 配列とか $() 文法とか、いろいろ Bash 独自の機能を使っているので、 /bin/sh しかない環境…例えば素のHP-UXとか…では使えない。

注意が必要だ。


ライセンスは GPLv3 にしている。一応。

ただ、一旦読んでしまえば、同じ物を別のライセンスで作るのに苦労はしないと思う。 tcshや ksh, zsh などに移植するのだって同様だ。