2007年9月アーカイブ

スペイン以来3年ぶりの海外旅行。ちょっと奮発してイタリアを旅することにした。気楽で気ままな一人旅。最新の一眼デジカメEOS40Dを担いで成田へ向かう。

荷物は60リットルのザックに詰める。サブザックとして今回はリュックをやめてショルダーバック兼ウエストバックみたいなやつを買った。カメラバックのように使えるので便利そう。山歩きで荷物極限まで絞る習慣があるので、行きのザックはいつもぶかぶかだ。

セキュリティチェックは液体の持込が厳しくなっていたが、特に混雑をしていることもなかった。このときに外したベルトは、とうとう旅行中一度も付けなかった。そういえばこのベルトは両親のイタリア旅行土産だったような気が...。

今回の航空チケットはエールフランス。食事やサービスがよくてお気に入りのエアラインだ。行きはJALとのコードシェアで、JALの機体。アナウンスも日本語だし、食事も美味しい。通路側の席を選んだが隣席があいていて気楽だし、とても快適だった。ただ食事中ミートソースのようなものをシャツに落としてしまい、旅の初っ端からすこし落ち込んだ。幸いこのシミはホテルで洗ったらきれいに落ちた。

機内ではジブリの『紅の豚』をやっていた。そうか、あれはアドリア海の話だ。豚のポルコは、うーん、やっぱり格好いいなぁ。『パイレーツオブカリビアン ワールドエンド』もやっていたが途中で寝てしまった。この作品は1作目は面白かったが、そのあとは屑だな。それから『スパイダーマン3』も観た。そういえば『スパイダーマン2』はスペインに行くときに機内で見たんじゃなかったっけっか。この映画は大画面でみたほうがいい気がするが...。

トランジットで下りたシャルルドゴールはやはり巨大だ。着陸してから20分くらい走ってやっとターミナルに着く。シャルルドゴールに下りたときはかなり寒く、薄い上着しかもっていなかったのですこし焦ったが、ローマはもう少し暖かかった。ローマのフィウミチーノに着いたのは30分遅れの21:30頃で荷物が出てくるのにも30分くらい待たされた。全席一等席のレオナルド・エクスプレス(12ユーロ)でテルミニ駅に着いたのはもう23時前。HISで手配しておいたホテルが駅前で本当によかった。この時刻でも駅前には人がたくさんいたが、あまり怖い雰囲気ではなかった。

ホテルMarsalaはとても\16,000の価値があるとは思えない古びた部屋。まず鍵があけにくい。棚のドアは外れかかっているしトイレの電気は点かない。シャワー室のドアが半分ない。おまけに初日は電気の点け方がわからなくて非常灯だけで過ごし、テレビもつけられなかった。幸いお湯はちゃんと出た。夕食がまだだったが食べに出る元気がなかったので、手持ちのチョコレートとミネラルウォーターで腹を慰めたが、なんだか惨めな気分だった。電気は寝る直前に正しい点け方がわかったが後のまつり。この日は疲れていたのですぐに寝た。

いちおうアクセス解析というものをやってみる。以前analogを触ったことはあったが、いまいちグラフィック的にきれいでないという不純な理由で気に入らなかった。いくつかのソフトを比較したみたが、見た目のきいれいさに惹かれてAWstatsを試してみることにした。だめもとでyum installとやってみたら、そのままインストールされてしまった。これではどんどん馬鹿になるなぁ。

①[root@www ~]# yum install awstats

②プラベートアドレスからのWebアクセスは私自身なのでアクセス解析から除外する。
[root@www ~]# vi /etc/awstats/awstats.www.grandarbre.net.conf

SkipHosts="127.0.0.1 REGEX[^192\.168\.]"

③プライベートアドレスからのみアクセス解析画面を見ることができるようにする。
[root@www ~]# vi /etc/httpd/conf.d/awstats.conf

Allow from 192.168.0.0/255.255.255.0

④httpdのログがローテートされる直前に必ずアップデートをして、情報が取り漏らされないようにする。
[root@www ~]# vi /etc/logrotate.d/httpd
prerotate
/usr/bin/perl /usr/share/awstats/wwwroot/cgi-bin/awstats.pl -update -config=www.grandarbre.net > /dev/null
endscript


当サイトのWebサーバ、温度が上がるとCPU負荷が上がる。普通因果が逆だろうと思うが、実際に暑い日はCPU負荷が上がり、涼しい日は下がる。結構熱を持つので外部ファンで強制空冷をすると負荷が下がり、うるさいので止めると上がる。

なんじゃそれと思ってログを見ると、暑いときはACPI関係のエラーがたくさん出ていた。

[root@www ~]# dmesg (前略) ACPI: EC: acpi_ec_wait timeout, status = 0, expect_event = 1 ACPI: EC: read timeout, command = 128 ACPI Exception (evregion-0420): AE_TIME, Returned by Handler for [EmbeddedControl] [20070126] ACPI Error (psparse-0537): Method parse/execution failed [\_TZ_.THRM._TMP] (Node cfc67420), AE_TIME (後略)

topをみてもkacpi_notifyがだいぶCPUを喰っている。また別の問題ではあるがDiCEも妙に負荷が高い。この2つが無駄飯喰いのようだ。

[root@www ~]# top top - 16:49:34 up 3 days, 5:27, 1 user, load average: 1.55, 1.51,1.41 Tasks: 99 total, 2 running, 97 sleeping, 0 stopped, 0 zombie Cpu(s): 1.0%us, 69.4%sy, 0.0%ni, 28.9%id, 0.0%wa, 0.3%hi, 0.3%si, 0.0%st Mem: 255324k total, 242352k used, 12972k free, 20892k buffers Swap: 524280k total, 39032k used, 485248k free, 67964k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
49 root 15 -5 0 0 0 R 60.9 0.0 743:14.99 kacpi_notify
2779 root 20 0 4184 384 296 S 5.6 0.2 1595:39 diced
2742 haldaemo 20 0 2076 824 728 S 0.7 0.3 8:08.63 hald-addon-acpi

ACPIを無効にするには、カーネルにacpi=offのパラメータを渡せばよい。boot時に

boot: linux acpi=off

とパラメータを渡してもいいし、恒久的に設定したいのであれば/etc/grub.confのkernel行に
acpi=off

を追加してもよい。

今回はファンで冷やしておけばいいのだから、とりあえずそのままにしておこう。


せっかくデジタル一眼を買ったのだから、ぜひ超広角と大口径単焦点が欲しかった。とくに超広角は室内撮影などに便利で、海外観光にはもってこい。EOS 40D自体が衝動買いに近かったのだが、その勢いで10-22mmという特殊なレンズをAmazonでポチッと注文してしまった。銀塩換算にして16mmのその画角は、リビングの端で構えると室内のほぼ全体が見渡せる。美術品や室内装飾など、至近距離でも全体をフレームに収めることができる。かつてスペインに行ったときは28mm相当のレンズで分割撮影して後処理でつなげてみたが上手くいかなかった。この広画角と40Dの高解像度なら、納得のいく写真が取れるかもしれない。(機材に頼っているうちは駄目という話もあるが...)

レンズは比較的大ぶりだが17-85mmよりは軽い。フィルター径が77mmと巨大だが根元は細いので威圧感はない。望遠側は銀塩換算35.2mmと標準域なので、意外と常用レンズになりそうな気がする。

ベランダの水やりを自動化


ベランダにブルーベリーなど20本くらいの鉢を置いているが、暑い季節は毎日水をやらないとすぐ萎れてしまう。ところが夏期休暇で家を空けることになり、水やりを自動化した。

コントローラを蛇口に付け、5mm位の黒いチューブで各鉢に配管する。コントローラで5分岐でき、更に5分岐のコネクタが付属している。コネクタで分岐を繰り返すと、蛇口から遠い方の水量が少なくなるので注意。

コントローラは単三乾電池4本で動作し、設定や操作はとても簡単。マニュアルを読む必要はない。1日1回、1日2回、1日おき、2日おきに時刻指定で自動水やりをしたり、付属の水分センサーで乾いたら水やりとかもできる。即時水やりをすることもできるし、その場合に一定時間後に自動的に止めることもできる。これは便利。

Movable Type 4.01がリリースされた。XSS関係の修正とパフォーマンスの向上が図られているらしいので、バージョンアップをする。

①バックアップをとる
- システムメニュ→ツールを選択
- バックアップメニューをクリック
- バックアップを作成ボタンをクリック

②MySQLのデータもバックアップする

[root@www ~]# mysqldump -a --user=root -p mt > mt_20070923.sql
Enter password:

③ホームページ自体も一応バックアップしておく

[root@www ~]# tar zcvf mt_20070923.tgz /var/www/html

④mobable type 4のディレクトリをリネームして残しておく

[root@www ~]# cd /var/www/cgi-bin
[root@www cgi-bin]# mv mt mt4

⑤新しいバージョンを解凍する

[root@www cgi-bin]# unzip MT-4_01-ja.zip

⑥ディレクトリ名をmtに変える

[root@www cgi-bin]# mv MT-4.01-ja/ mt

⑦所有者とグループを変える

[root@www cgi-bin]# chown -R apache:apache mt

⑧SELinuxのコンテキストを変える

[root@www cgi-bin]# chcon -R system_u:object_r:httpd_sys_script_exec_t mt

⑨設定をコピーする

[root@www cgi-bin]# cp mt4/mt-config.cgi mt

これでちゃんと動くかどうか確認を含めてこの記事を書いてみた。動いてはいるけど、ちっとも早くなった気がしないなぁ。

kernelのアップデート

近頃妙にサーバが重い。再起動をしても直らない。ふとコンソールを見てみたら以下のようなエラーメッセージが出ていた。

BUG: warning at kernel/softirq.c:138/local_bh_enable() (Not tainted) [] local_bh_enable+0x45/0x92 [] cond_resched_softirq+0x2c/0x42 [] release_sock+0x4f/0x9d [] tcp_recvmsg+0x8d2/0x9de [] sock_common_recvmsg+0x3e/0x54 [] sock_aio_read+0xfc/0x108 [] do_sync_read+0xc7/0x10a [] autoremove_wake_function+0x0/0x35 [] vfs_read+0xba/0x152 [] sys_read+0x41/0x67 [] syscall_call+0x7/0xb =======================

いつからこうなったのか判らないが、再起動をしてもかならず出てくる。試しにカーネルを最新版にあげてみることにした。昔はCD-ROMドライバやサウンドドライバをインストールしたり、FATで日本語ファイル名を使ったりするためにカーネルソースをダウンロードしてmake menuconfigして再構築したりしたものだが、今は必要なモジュールはほとんどローダブルモジュールとして自動的にロードされるので、ディストリビューションで用意されているカーネルをyumでアップデートするだけで済ましてしまう。

まずは現在の情報を確認する。


[root@www ~]# uname -a
Linux www.grandarbre.net 2.6.21-1.3194.fc7 #1 SMP Wed May 23 22:35:01 EDT 2007 i686 i686 i386 GNU/Linux
[root@www sysconfig]# rpm -q kernel
kernel-2.6.21-1.3194.fc7

そしておもむろにアップデートをする。やることはこれだけ。

root@www ~]# yum upgrade kernel
Loading "installonlyn" plugin
Setting up Upgrade Process
fedora 100% |=========================| 2.1 kB 00:00
updates 100% |=========================| 2.3 kB 00:00
primary.sqlite.bz2 100% |=========================| 1.5 MB 00:24
Resolving Dependencies
--> Running transaction check
filelists.sqlite.bz2 100% |=========================| 3.5 MB 00:54
---> Package kernel.i686 0:2.6.22.5-76.fc7 set to be updated
--> Processing Dependency: mkinitrd >= 6.0.9-7.1 for package: kernel
--> Restarting Dependency Resolution with new changes.
--> Running transaction check
---> Package mkinitrd.i386 0:6.0.9-7.1 set to be updated
--> Processing Dependency: nash = 6.0.9-7.1 for package: mkinitrd
--> Restarting Dependency Resolution with new changes.
--> Running transaction check
---> Package nash.i386 0:6.0.9-7.1 set to be updated

Dependencies Resolved

=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
kernel i686 2.6.22.5-76.fc7 updates 16 M
Updating for dependencies:
mkinitrd i386 6.0.9-7.1 updates 91 k
nash i386 6.0.9-7.1 updates 158 k

Transaction Summary
=============================================================================
Install 1 Package(s)
Update 2 Package(s)
Remove 0 Package(s)

Total download size: 16 M
Is this ok [y/N]: y
Downloading Packages:
(1/3): kernel-2.6.22.5-76 100% |=========================| 16 MB 04:16
(2/3): mkinitrd-6.0.9-7.1 100% |=========================| 91 kB 00:02
(3/3): nash-6.0.9-7.1.i38 100% |=========================| 158 kB 00:03
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Updating : nash ######################### [1/5]
Updating : mkinitrd ######################### [2/5]
Installing: kernel ######################### [3/5]
Cleanup : nash ######################### [4/5]
Cleanup : mkinitrd ######################### [5/5]

Installed: kernel.i686 0:2.6.22.5-76.fc7
Dependency Updated: mkinitrd.i386 0:6.0.9-7.1 nash.i386 0:6.0.9-7.1
Complete!
[root@www ~]#

いちおうブートローダが更新されていることを確認する。


[root@www ~]# cat /etc/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00
# initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Fedora (2.6.22.5-76.fc7)
root (hd0,0)
kernel /vmlinuz-2.6.22.5-76.fc7 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.22.5-76.fc7.img
title Fedora (2.6.21-1.3194.fc7)
root (hd0,0)
kernel /vmlinuz-2.6.21-1.3194.fc7 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.21-1.3194.fc7.img
[root@www etc]#

カーネルも確認する。

[root@www ~]# ls /boot/
System.map-2.6.21-1.3194.fc7 grub vmlinuz-2.6.21-1.3194.fc7
System.map-2.6.22.5-76.fc7 initrd-2.6.21-1.3194.fc7.img vmlinuz-2.6.22.5-76.fc7
config-2.6.21-1.3194.fc7 initrd-2.6.22.5-76.fc7.img
config-2.6.22.5-76.fc7 lost+found
[root@www ~]#

そしておもむろに再起動!!

[root@www ~]# reboot

Broadcast message from root (pts/0) (Tue Sep 18 22:54:34 2007):

The system is going down for reboot NOW!
[root@www ~]#


コンソールで起動メッセージを見たが問題なく新しいバージョンであがってきた。

[root@www ~]# uname -a
Linux www.grandarbre.net 2.6.22.5-76.fc7 #1 SMP Thu Aug 30 13:47:21 EDT 2007 i686 i686 i386 GNU/Linux
[root@www ~]#

コンソールのレスポンスが明らかに良くなっている。Movable Typeの編集画面の重さは相変わらずだが...。

キーマップの設定

しばらく前にセキュリティ向上の為にパスワードを記号交じりに変えたのだが、 コンソールからログインできない!!ふだんはsshでしか入らないので気付かなかったのだがキーマップがusになっているようで、どのキーがどの記号になっているのか判らないのだ。これではスタンドアロンでメンテナンスができないので、あわてて設定をなおす。

[root@www ~]# cat /etc/sysconfig/keyboard
KEYBOARDTYPE="pc"
KEYTABLE="us"

となっているのを、下記のように書き換える。
[root@www ~]# cat /etc/sysconfig/keyboard
KEYBOARDTYPE="pc"
KEYTABLE="jp106"

指定できるキーマップは/lib/kbd/keymaps/i386/qwerty/の下から選べる。

この設定は再起動すれば反映されるが

[root@www ~]# loadkeys jp106

とすれば即時キーマップを変えられる。これは現在のキーマップを変えるコマンドで、rootでなくても使用可能。

激安のホームシアター

年に100本ちかい映画を(ほとんどレンタルDVDで)視聴している。世の中は薄型大画面テレビが花盛りだが、我が家は激安で140インチのパーソナル映画館を実現している。

液晶プロジェクターSANYO LP-Z4(S)16万円
スクリーン部屋の白壁0円
DVDプレーヤーPlayStation22万円
地上デジタルチューナーユニデン DT100-HDMI2万円
オーディオ10年前のミニコンポ8万円


ポイントはユニデンのチューナー。ヨドバシとかで売っている単体チューナーはHDDレコーダと大してかわらない値段がついてしまっているが、これは2万円と格安。BSデジタルには非対応だがちゃんときれいに地上デジタルが見られる。

PS2やオーディオは昔からもっていたものなので追加コストがかかっていない。別に予算をケチっていたわけではなくて、追加でシステムを増強していこうとおもっていたのだが、その必要性を感じずに2年くらい経ってしまった。プロジェクターと格安チューナーだけのこんなへたれなシステムでも、リビングの壁一面にハイビジョンの映像が投影されると感動ものなのである。あとはサラウンドを入れたいが、次世代DVDが普及価格に落ちてきたら一緒に買おうかと考えている。

プロジェクターというと部屋を真っ暗にしないといけないようなイメージがあるが、リビングの明かりをスポットライト系にすると意外と普通にテレビとして使える。昼間はさすがに使えないが、明るい時間にテレビなんか見ない。

ここ数年で薄型大画面テレビも大幅に値下がりして42インチプラズマが20万円くらいで買えるが、迫力の点ではいまでもプロジェクタが圧勝と思う。ハイビジョン大画面は臨場感という点でこれまでのテレビとは一線を画する。これで立体映像が観られたらいうことがないのだが、はやくそんな商品が出ないかなぁ。

blogではおなじみのカレンダー。もちろんMovable Typeにもその機能はあるが、設定が面倒くさい上に情報が少ない。Webでいろいろ調べて、なんとか表示するところまでこぎつけた。

①メニューから、デザイン→テンプレートを選択
②右側のクイックフィルタから、テンプレートモジュールをクリック
③サイドバー(2カラム)をクリック
※3カラムのレイアウトを使っている場合はサイドバー(3カラム)をクリック
④<div id="beta"><div id="beta-inner">のあとに以下のテキストを追加する

<div id="calendar">
<table summary="投稿されたエントリーへのリンク付き月間カレンダー">
<caption><MTArchiveList archive_type="Monthly" lastn="1"><$MTArchiveDate format="%B
%Y"$></MTArchiveList></caption>
<tr>
<th class="sunday" abbr="日曜日">日</th>
<th abbr="月曜日">月</th>
<th abbr="火曜日">火</th>
<th abbr="水曜日">水</th>
<th abbr="木曜日">木</th>
<th abbr="金曜日">金</th>
<th class="saturday" abbr="土曜日">土</th>
</tr>
<MTCalendar>
<MTCalendarWeekHeader><tr></MTCalendarWeekHeader>
<td><MTCalendarIfEntries><MTEntries lastn="1"><a href="<$MTEntryPermalink$>"><$MTCalendarDay$></a></MTEntries></MTCalendarIfEntries><MTCalendarIfNoEntries><$MTCalendarDay$></MTCalendarIfNoEntries><MTCalendarIfBlank> </MTCalendarIfBlank></td><MTCalendarWeekFooter></tr></MTCalendarWeekFooter> </MTCalendar>
</table>
</div>

⑤保存ボタンをクリック
⑥再度、メニューから、デザイン→テンプレートを選択
⑦スタイルシート(ベーステーマ)をクリック
⑧適当な場所(最後尾など)に以下のテキストを追加する

#calendar { line-height: 140%; color: #003300; font-family: Verdana, Arial, sans-serif; padding: 0px; text-align: center; margin-bottom: 5px; }

#calendar table {
font-size: 90%;
padding: 2px;
border-collapse: collapse;
border: 0px;
width: 155px;
}

#calendar caption {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 90%;
color: #333333;
text-align: center;
background-color: #ffffff;
padding-top: 2px;
padding-bottom: 5px;
}

#calendar th {
text-align: center;
font-weight: normal;
background-color: #ebe8e1;
}

#calendar .sunday { background-color:#ffe6cc; }

#calendar .saturday { background-color:#ccffcc; }

#calendar td { text-align: center; }

#calendar a:link {
text-decoration: none;
color: #0033ff;
border-bottom: 1px solid #d97f26;
}

#calendar a:link:hover {
text-decoration: underline;
color: #ff3300;
border-bottom: 1px solid #d97f26;
}

#calendar a:link:active {
text-decoration: underline;
color: #0033ff;
border-bottom: 1px solid #d97f26;
}

#calendar a:visited {
text-decoration: none;
color: #0033ff;
border-bottom: 1px solid #d97f26;
}

#calendar a:visited:hover {
text-decoration: underline;
color: #ff3300;
border-bottom: 1px solid #d97f26;
}

#calendar a:visited:active {
text-decoration: underline;
color: #0033ff;
border-bottom: 1px solid #d97f26;
}

⑨保存ボタンをクリック
⑩サイトを再構築する

これでページのサイドバーに今月のカレンダーが表示され、日付をクリックするとその日のblogにジャンプする。

しかしいかにも設定が回りくどい。もっと高機能なカレンダーも作れるようだが、Movable Typeの解析を趣味とするような人にしか使いこなせない。本サイトもいろいろちょこちょことやりたいことがあるのだが、やり方がわからなくて頓挫している面もある。HTML手打ちの時代が懐かしいなぁ。

低スペックのサーバだが、アクセスが少ないのでもっている。高スペックのサーバに買い換えたい物欲を抑えるために、mrtgで負荷状態を監視しよう。mrtgはもうずいぶん古いソフトウェアで後継筋のcactiなどを試したこともあるが、シンプルに静的なグラフを表示するだけならこちらのほうが手軽でよい。

snmpdを動かす

mrtgでCPUやメモリの負荷を測りたい。まずはLinux BOX上でSNMPのエージェントを動かす必要がある。

①yum install net-snmp
②yum install net-snmp-utils
③/etc/snmp/snmpd.confを編集

# sec.name source community
com2sec notConfigUser default public

## sec.name source community
com2sec local localhost public
com2sec mynetwork 192.168.0.0/24 hogehoge

## group.name sec.model sec.name
group MyRWGroup any local
group MyROGroup any mynetwork

## incl/excl subtree mask
view all included .1 80

## context sec.model sec.level prefix read write notif
access MyROGroup "" any noauth 0 all none none
access MyRWGroup "" any noauth 0 all all all

###############################################################################
# System contact information

syslocation Tokyo
syscontact root@www.grandarbre.net

###############################################################################
# disk checks
#
# Check the / partition and make sure it contains at least 10 megs.

disk / 10000

###############################################################################
# load average checks
#
# Check for loads:
load 12 14 14


④プライベートネットワークからのみアクセスを許可(今回の要件では不要)
/etc/sysconfig/iptablesに以下を追加し、service iptables reload
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp -s 192.168.0.0/24 --dport 161 -j ACCEPT

⑤service snmpd startで開始
⑥snmpwalk -v2c -c hogehoge 127.0.0.1でMIBが取れることを確認する。
⑦chkconfig snmpd onで自動開始を有効にする

鼻から塩水を...

暇なので、前から一度やってみようと思っていた鼻うがいというものを試してみた。鼻から塩水を吸い口から出すというもので、花粉症や風邪の予防に効果があるとかないとか。ネットで適当に調べたら思った以上に簡単にできたので紹介する。

まずコップに塩水を作る。塩は小さじ半分くらいで、舐めてみて薄い塩味がする程度。塩は粗塩がよいという話。水も粘膜を通すのだから脱塩素したものがいいと思う。人肌程度のぬるま湯にするが、沸かしたりするのは面倒なので電子レンジで20秒くらい温める。冷たくても熱くても刺激になるので、口に含んでみてちょうどいい程度に調整する。

洗面所で、普通に前を向いたままかややうつむき加減程度で、おもむろにコップの口を片方の鼻の穴にもってくる。もう片方の鼻の穴は上から指で押さえて閉じる。その状態で普通に鼻から吸うと、ほとんど痛みも違和感もなく水が入ってくる。

水はそのまま喉を下ってくるので、タンを出すみたいに随時吐き出す。たぶん自動的にかなりの割合をのんでしまっている予感がするが、どうせ鼻水の大部分はそうやって胃に入ってしまうものなので、あまり深刻に考えない。

プールや海で鼻に水が入ったときのツーンとする感覚は皆無で、痛くも苦しくもない。ただやってしばらくの間は、のどに塩水がたれてくるので口の中がしょっぱい。また思いがけず鼻から水がたれてくることもあるらしいので、ティッシュは手元においておこう。

pukiwikiを導入

movable typeだと系統立ったコンテンツが書きにくいので、別途pukiwikiを導入した。pukiwikiはcgi-bin配下のディレクトリに書き込みをしなければいけないため、SELinuxのコンテキストを設定する必要がある。

1.cd /var/www/cgi-bin
2.tar zxf pukiwiki-1.4.7_notb_utf8.tar.gz
3.mv pukiwiki-1.4.7_notb_utf8.tar.gz pukiwiki
4.chown -R apache:apache pukiwiki
5.chcon -R system_u:object_r:httpd_sys_script_exec_t pukiwiki
6.chcon -R system_u:object_r:httpd_sys_content_t pukiwiki/attach
  chcon -R system_u:object_r:httpd_sys_content_t pukiwiki/backup
  chcon -R system_u:object_r:httpd_sys_content_t pukiwiki/cache
  chcon -R system_u:object_r:httpd_sys_content_t pukiwiki/counter
  chcon -R system_u:object_r:httpd_sys_content_t pukiwiki/diff
  chcon -R system_u:object_r:httpd_sys_content_t pukiwiki/trackback
  chcon -R system_u:object_r:httpd_sys_content_t pukiwiki/wiki
7.pukiwiki.ini.phpの$adminpassなどを修正
  echo -n 'PASSWORD'| md5sumとして得られたハッシュ(たとえば319f4d26e3c536b5dd871bb2c52e3178)を
  $adminpass = '{x-php-md5}319f4d26e3c536b5dd871bb2c52e3178';として記述する

それから、apacheのデフォルトの設定ではcgi-bin以下のファイルはすべてスクリプトとして解釈されるため、画像などを置いて表示することができない。そこで/etc/httpd/conf/httpd.confのcgi-binの部分にAddHandlerを追加する。

[root@www1 ~]# cat /etc/httpd/conf/httpd.conf 
...
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"

<Directory "/var/www/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
    AddHandler image/png .png
</Directory>
...

apacheの設定を変更したらservice httpd reloadで反映させる。

ここまでの作業でとりあえずページは表示され、編集も可能となる。ファイルのパーミッションは解凍時のままでOK(INSTALL.txtの指示どおり)だった。体裁変更や認証の追加はまたあとで。

総当り攻撃

サーバのログを見ていたらsshの総当り攻撃が来ていた。こんなかんじで1秒に1回くらい繰り返している。

[root@www ~]# tail -f /var/log/secure
Sep 5 20:15:13 www sshd[18846]: Invalid user atal from 125.141.17.***
Sep 5 20:15:14 www sshd[18850]: input_userauth_request: invalid user atal
Sep 5 20:15:14 www sshd[18850]: Received disconnect from 125.141.17.***:11: Bye Bye
...

もっと昔のログも見てみたら、サイト開設当初からいろんなアドレスから攻撃が来ている。そんなもんか。
sshアクセスにはRSA鍵認証をしているし侵入される恐れは少ないと思うが、やっぱり気分が悪い。
iptableでssh接続の送信元を限定したら止まったが、まだ不要と思われるポートがいくつか開いていた。
ちゃんと調べて要塞化しないといけないな。

Movable Type 4に移行

これまで使っていたmobable type 3.35が使いにくかったのと、やはり新しいものを使ってみたいのとで、movable type 4に移行した。

移行作業自体は圧縮ファイルを解凍してパーミッション類を設定する程度で、あとはCGI経由でほとんど全自動という感じだったが、移行後にデザインのスタイルを変えてみたところスタイルシートがうまく使えなくなってしまった。

メニューを見てもどこをいじっていいかよくわからず、Web上にもそんな情報はみつからず、他に新規作成してみたちゃんと動くblogと比較してもよくわからず、結局いったんブログを削除して新規に作り直し、コンテンツをインポートしてやっと回復した。

肝心の使用感だが、標準でWYSWYG的に記事を書けるのはうれしい。使い勝手もよくなっているかんじ。とりあえず苦労した甲斐はあったかな。ただ管理画面がJavascriptで作られていてFirefoxではうまく使えない。このときだけわざわざIEを立ち上げるのは面倒くさい。

外出先から室温確認

PICNICにおまけで付いている温度計。これはブラウザ経由で気温を読めるのだが、プライベートLANにつながっているので当然外出先から見ることができない。そこで公開サーバ上にPICNICから気温を読み取ってWebページに表示するCGIをおいてみた。スクリプトはこんなかんじ。

temp.cgi
#!/bin/sh
picnic='192.168.0.200'
cal='0'
deg=`wget -q -O - 'http://'$picnic'/' |
sed -n '/Celsius/p' |
sed '1,$s/^.*>\([0-9][0-9]*\) *Celsius.*$/\1/'`
deg=`awk "BEGIN { print $deg + $cal }"`
echo "Content-Type: text/html; charset=EUC-JP"
echo ""
echo ""
echo $deg
echo ""

アクセスすると気温を2桁で表示するというだけのページだが、外出先からAir H"でアクセスすると少しだけうれしい。