このページでは技術情報的な何かについて書き綴ってみようかと思います。必ずしも有益な情報があるとは限らないので御了承下さいませ。( ̄┏∞┓ ̄;)
トップページの自動更新について
2008年01月10日
今回お正月用のトップページを用意してプログラムでの自動更新を実行したのですが、どのような事を行ったのか?ちょろっと解説してみようかと思います。何だか技術情報っぽいかな?(笑
[必要なモノ]
- 新しいトップページ
- Linuxの知識少々
必要なのは実際コレだけだったりします。ってか、よく考えたらLinuxの基礎的な部分から説明しなきゃならんじゃないか。( ̄┏∞┓ ̄;)
とりあえずサーバ内部で何をやったのかを解説。
とまぁこんな感じでして。一応ココでは分かりやすく表現していますが、
「スケジューラー」⇒「cron(クーロン)」
「プログラム」⇒「シェルスクリプト」
というものです。とりあえずHTMLとかは分かっている前提で話を進めます。
[cron(クーロン)について]
Linuxの便利な機能としてcronというものがあります。サーバ運用を行う上でスケジュールに沿ったプログラムの定期実行などが不可欠となっておりまして、それを簡単に実現するのがこのcronなんですな。んでソレがどういうものかというと・・・、
0 0 1 1 * /root/shell/websiteUpdate.sh > /dev/null 2>&1 |
こういった感じで命令文が記述されたcrontabというファイルがありましてな、これをcronが読み込んで記述されている内容を実行するわけです。
んで、ココで出てきた実行する処理こそがシェルスクリプトなわけです。
[シェルスクリプトについて]
Windowsを使っている場合、プログラムを実行する際にはデスクトップのアイコンをダブルクリックしたり、スタートメニューからプログラムを実行したりしますが、その際に内部処理として[ココのアイコンをクリック]⇒[アソコのプログラムを実行]という流れが発生しているのです。これはLinuxでも基本は同じでして、アイコンをクリックする代わりに何処のプログラムを実行するのか?をコマンドで指定してやるわけですな。
まず『何処の?』という指定ですが、Windowsでいうフォルダを、Linuxの場合はディレクトリと呼んでいまして(本当は呼び方以外も違うんだけど省略)、そのディレクトリの構造を表現するのに"/"(スラッシュ)で区切って表記しています。前出の例でいうと、
"/root/shell/websiteUpdate.sh"というのは、"rootの下のshellの下にあるwebsiteUpdate.sh"という意味になります。
つまり"websiteUpdate.sh"というのが実行するシェルスクリプト(プログラム)なわけですな。ちなみに後ろに付いてる "> /dev/null 2>&1" というのは、何かエラーがあった時の為の対策なんですが特に気にしないで下さい。(笑
次に実行するシェルスクリプトの内容ですが、今回使用したのは以下のようなモノです。
WORK_DIR="/var/www"
cd $WORK_DIR
tar czf html`date +%Y%m%d`.tar.gz html
cp -rfp $WORK_DIR/reserve_html/top.htm $WORK_DIR/html/
exit 0
こんなのイキナリ見せられてもワケワカランでしょうが、プログラムの基本は『アレやって~』『コレやって~』という命令文(コマンド)を書き連ねるだけなんですな。ちなみにこのシェルスクリプトでは以下の三つしか命令文を使っておりません。
cd | "Change Directory" の略。ディレクトリを移動します。 |
tar | ファイル圧縮。圧縮したファイルの解凍にも使えます。 |
cp | ファイルコピー。そのまんま "copy" の略ですな。 |
ちなみにこういったコマンドは普段Linuxを操作している時にも普通に使います。Windowsではマウスでアイコンをクリックし、開いたメニューから目的の操作を選択するとか、フォルダとフォルダをまたいでファイルをドラッグ・アンド・ドロップしたりと、見た目で分かりやすいように作られていますが、Linuxはコマンドでの操作がメインとなっております。
さて、今回作成したシェルスクリプトの場合ですが、
と、まぁ以上のようになっておりまする。
しかしここまで解説してきてこう言うのもなんだが、このコラム全然上手くまとまってないんじゃないか?( ̄┏∞┓ ̄;)(笑
やっぱイキナリcronだのシェルスクリプトだのを解説するよりもLinuxの基礎から解説するべきなんじゃないのか・・・なんて考えたり・・・。
でもまぁせっかくここまで書いたので、とりあえず公開する事にしました。完成度は低いけど捨てるのももったいないし。(笑
また改めて、Linuxのインストールから始める入門講座みたいなのをまとめてみようかと思いますので乞うご期待。( ̄┏∞┓ ̄)ノ♪
コピペが基本!?
2007年12月09日
仕事としてシステムエンジニア(以下SE)をやるなら、当然プログラムをバリバリ書けなくちゃ話になりません。・・・・・・と、いうのは実は間違った認識でして、SEをやっているけどプログラムなんて全然やってないよ~なんて人も中にはいるのです。
実際のところSEという職業のカバーする業務範囲が異様に広く、職場によっては何でもかんでもSEの仕事という事にされてしまいます。( ̄┏∞┓ ̄;)
SEの仕事としては『プログラム作成』『仕様書や設計書等のドキュメント作成(プレゼンテーション用資料も含む)』『サーバ環境の構築』と、まぁこういった作業がメインではないでしょうか。
んで、こういった作業に付随するその他諸々の細かい作業、作ったモノのレビューやテスト、時には顧客との打ち合わせや営業的な事なんかもやるわけですな。
さて、前述した雑多な仕事をこなしていく為には効率良く作業を進めていく必要がありまして、そこで出てくるテクニック、それがコピペなわけですな。実はこの業界ではコレがデフォルトだったりします。(笑
もちろんプログラミング言語についてまじめに勉強し、文法やら何やら覚えてからコーディングする人もたくさんいますし(てゆっかそっちの方が正統派)そういうやり方の方が確実なワケですが、仕事として要求されるのはあくまで結果なワケでして。
結果さえ良ければ過程は気にすんなヨ♪ってアバウトな職場もあったりします。てゆっかたくさんあります。( ̄┏∞┓ ̄;)
そういう状況で作られるのがこのコピペ・プログラムなんですが、もうただひたすら[Ctrl]+[c]!![Ctrl]+[v]!!の嵐であります。(笑
ただあくまで結果が大事なワケでして、コピペしたつぎはぎだらけのプログラムでもちゃんと仕様通りの動きをするか?については入念にチェックしましょう。時にはコピペ元のパラメータや変数、コメントなどがそのまんま残っていて、予想外の不協和音を奏でる事もあったりして。(笑
機能 | 操作キー |
---|---|
コピー | [Ctrl]+[c] |
ペースト | [Ctrl]+[v] |
切り抜き | [Ctrl]+[x] |
操作前に戻す | [Ctrl]+[z] |
保存 | [Ctrl]+[s] |
全部選択 | [Ctrl]+[a] |
まぁぶっちゃけた話、コピペするのは手抜きという訳ではなく、過去の資産を有効活用した上で効率的に仕事を進めていると言えなくもないような気がするのは私だけではないはずです。(; ̄┏∞┓ ̄)ノ
何か新しい仕事を引き受ける度に、一からプログラムをコーディングしなおすとか、一からドキュメントを書き起こすなんていうのはあまりにも非効率的ですからねぇ。
プログラムの機能にしてもドキュメントの文章にしても、それぞれ色んな部品を組み合わせて構成しているだけでして、その構成要素の大半は共通して使い回しがきくものだったりします。使いまわしできる部分は使いまわして、その都度必要な部分のみ修正を入れたり新しく作ったりすればかなりの無駄を省ける訳でございます。
時間が限られている以上、仕事は効率的且つ速やかに進めたいものですなぁ。出来るものならね。( ̄┏∞┓ ̄;)(笑
画面表示のお話
2007年11月25日
パソコンを使う時に必要なものは数あれど、モニターが無くっちゃ話になりません。グラフィックベースのWindowsだろうがテキストベースのLinuxだろうが、コレだけは変わりませんねぇ。ちなみに私は17インチの液晶モニターを使っておりますが、結構前に購入したものなので表示できるのはSXGA止まりです。
規格名 | 画面サイズ(ピクセル数) |
---|---|
VGA | 640x480 |
SVGA | 800x600 |
XGA | 1024x768 |
WXGA+ | 1440x900 |
SXGA | 1280x1024 |
WSXGA+ | 1680x1050 |
UXGA | 1600x1200 |
WUXGA | 1920x1200 |
世の流れとして、パソコンの用途が仕事以外にもゲームや映像ソフトの鑑賞、テレビの視聴や録画といった感じに広がっていますから、モニターの解像度もどんどんキメ細かく精細に、そして大画面の迫力あるモノが各社から発売されています。まぁそういったものは値段も結構なモノだったりしますが。( ̄┏∞┓ ̄;)
んで画面サイズについてはWebサイトを作る側の人間も十分意識しなければならない要素でして、不特定多数の人間が見るWebサイトを作る以上、「このぐらいなら大抵の人のモニターにイイ感じで表示されるんじゃね?」って画面構成にしなければならないわけです。
イヤ、こんなアバウトな感じではイカンのですがね。(笑
Webサイトを見る人それぞれにパソコン環境が違う以上、最大公約数的なモノを追求しなければならんわけでして。
ところでアクセシビリティという言葉を聞いた事はありますかな?詳細についてはウィキペディアとかを見てもらうとして、本当はもっとちゃんと細かい部分にまで配慮したサイト構築をやらねばならんのですよね。
このサイトについては、まだ勉強中のへっぽこSEが作ったということでご容赦くださいませ。(; ̄┏∞┓ ̄)ノ
機材紹介
2007年10月17日
上の画像が当サイトで使用しているWebサーバでございます。見ての通り、そこら辺のPCショップで普通に購入できるようなモノを使っておりまして、以下にそのスペックを記します。
素体 | DELL OptiplexGX150 (秋葉原の中古屋で7800円で購入) |
CPU | PentiumⅢ 1G |
メモリ | 512M(購入時は256M) |
HDD | 80G(購入時は20G) |
OS | CentOS4(Linuxでございます) |
と、このような構成になっております。