SSブログ

サーバ管理者のためのプログラミング入門(シェルプログラミング基礎1) [サーバ管理者のプログラミング]

 個人的な信条として、「rootのパスワードを握る者はせめてC言語でUNIX/Linuxシステムコールプログラミングの基礎知識ぐらい持ってろ」というものがあるのだけども、実際の問題としてプログラミングの知識も経験もほとんど無いサーバ管理者というものが増えつつあり、しかもその数が決して少なくないみたいなんだな。
 やれやれ…

 が、そんなサーバ管理者であっても、時としてプログラミングを強要されるシーンが無いとも限らず、たとえば同じような処理を沢山のサーバで延々と実行しなきゃならないケースなど、手でいちいちコマンド入力していたら面倒くさいし、それだけヒューマンエラーの発生しうる余地が増えるとあって、せめてシェルスクリプトくらいは書けるようになっておかないと…と思うこともあるようだ。

#「あるようだ」と書いているのは、私にはプログラミングの知識も経験もあるので
#そんな場合にはとっととスクリプトを書いてしまうからそんな苦労に遭遇しないの
#である…

 経験の浅いサーバ管理者で、「さあ!シェルプログラミングを!」と迫られるとしり込みしてしまう傾向にあるようだが、プログラミングというものを難しく考えているというのがそもそもの原因であるように思う。

 そんな若いサーバ管理者諸君に問う!

 プログラミングとはなんぞや!?

 それは…

 実行したいコマンドを  実行したい順番に書き並べただけの  サーバ向けの作業手順書に過ぎない!

 …と、割り切ってしまえばそんなに難しい話ではない。(笑)
 やれ、オブジェクト指向がどうとか、構造化プログラミングがどうとか、アルゴリズムがどうとか、ロジックがどうとか、そんなことを気にする必要は全く無い!どうせサーバ管理者はプログラムを売って食っていく職業ではないので、アプリケーション開発者が吐き気を催すような、アレなプログラムを書いたところで一向に構わないのである!

 たとえば。
 『サーバA、サーバB、サーバC…サーバZの26台のサーバに、今からyum updateを実行したい。』

 という処理を実行すると仮定する。そして、それは1~2ヶ月に1度実行する必要がある処理だとする。
 毎月毎月、君は26台のサーバにログインして yum update を実行しなければならないとしたらうんざりしないか?

 「26台くらいなら別に…」 と、KYな反応をするそこの君!26台が50台だったら…200台だったら…それでも君は同じKYな反応をするかね?(笑)

 こんな場合に、せめてシェルプログラミングが出来れば、1回だけ苦労しておけばあとはコマンド一発で済むのだよ?そしてその初回の1回だけ、完全に動作することを確認できれば、ほとんどの場合2回目以降も完全に動作することが約束されるのである。

 では、知識も経験も技術もへったくれも無い、サーバ管理者が最初に書くであろうシェルプログラミングの成果物はどのようなものになるだろうか…
 おそらく、以下のようなものになるだろう!
#!/bin/bash
ssh serverA yum -y update
ssh serverB yum -y update
ssh serverC yum -y update
ssh serverD yum -y update
ssh serverE yum -y update
ssh serverF yum -y update
ssh serverG yum -y update
ssh serverH yum -y update
ssh serverI yum -y update
ssh serverJ yum -y update
ssh serverK yum -y update
ssh serverL yum -y update
ssh serverM yum -y update
ssh serverN yum -y update
ssh serverO yum -y update
ssh serverP yum -y update
ssh serverQ yum -y update
ssh serverR yum -y update
ssh serverS yum -y update
ssh serverT yum -y update
ssh serverU yum -y update
ssh serverV yum -y update
ssh serverW yum -y update
ssh serverX yum -y update
ssh serverY yum -y update
ssh serverZ yum -y update

 こんなシェルスクリプトを書いたって、それは君にとって立派なシェルプログラミングであり、この成果物は来月からは君の作業を大いにラクチンにしてくれることだろう。
 熟練したプログラマが見れば、このシェルスクリプトには「ツッコミどころが満載」であるし、決して「美しい」とはいえない。しかしこのシェルスクリプトでも君の欲している目的を十分に満たすことが出来れば、技術がどうとかいうことは気にする必要が無い。

 【技術はあとから身についてくる】

 だから、プログラミング経験の全く無いサーバ管理者の諸君も、今はそんなこと全く気にしなくても良い。
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。