Home

技術系のメモと日々の雑感

top のタスクエリアを簡単にカスタマイズ

top のヘルプを見ていたら

b : bold/reverse
B : disable/enable bold
z : Toggle color/mono

といったコマンドでタスクエリアを簡単にカスタマイズできることが書いてあった。
試してみると Status が Running になっているプロセスが一目瞭然。
b は y (running tasks)が有効なときだけ使用できるコマンドだ。  ※y はデフォルトで有効
Teraterm なんかだと B を単独で使う方が見やすいかも。
あと i (idle tasks)でスリープ状態のプロセスを消すと Running のプロセスだけ表示させられるのも便利。
ちなみに、ヘルプの最後の方に「くだらないトリック」として表示の更新間隔(update interval)を1秒以下に設定できることが書いてあった。
d または s を入力してから「.01」といった値を入力すると Linux がとても忙しく仕事していることが分かるよ、とのこと。
面白い!

smartd からのアラートメール

家のマシンの root 宛のメールをチェックしたら、smartd からのアラートメールが来ていた。
Web を漁ってもこのメールについて書かれているサイトは少なかったので、参考までに載せておく。

Subject: SMART error (CurrentPendingSector) detected on host: localhost.localdomain

This email was generated by the smartd daemon running on:
  host name: localhost.localdomain
  DNS domain: localdomain
  NIS domain: (none)

The following warning/error was logged by the smartd daemon:
Device: /dev/hda, 1 Currently unreadable (pending) sectors
For details see host's SYSLOG (default: /var/log/messages).

You can also use the smartctl utility for further investigation.
No additional email messages about this problem will be sent.

読めないセクタがあるってことだね。
S.M.A.R.T の情報はあまりアテにならないって話も聞くけど、こんな風にセクタエラーを教えてくれるだけでも価値があると思うな。
ちなみに、このマシンは見ての通りホスト名すらきちんと設定してないような扱いなのでいつ壊れても平気。
S.M.A.R.T の検証にもってこいだね。
いい機会なので smartd.conf を調整しておく。
-a で有効になるオプション以外では重要そうなのがなかったので、これだけを指定して済ませようかと思ったら

Device: /dev/hda, can't monitor Temperature, ignoring -W Directive

と怒られてしまった。
温度も監視したかったんだけどな〜。
仕方がないので個別に指定。

/dev/hda -H -f -p -u -l error -l selftest -C 197 -m root

さて、これからどんな風に壊れていくか観察していこう。

Filezilla のメッセージログ

この前、Filezilla をバージョンアップしたら、メッセージログの表示位置を変更できるようになっているのに気がついた。
今使っているバージョンは 3.2.4。
過去のバージョンではファイルリストの上にしか表示できなくて、目立ちすぎるので非表示にしていたんだけど

・ファイルリストの上 ※過去のバージョンの設定
・転送キューの隣
・転送キューのタブ

の3つから選べるようになっている。
個人的には「転送キューのタブ」が好みだな。
これならぜんぜん邪魔にならないね。

iptables と Passive FTP

iptables でトラフィックを厳しく制限しているサーバで FTP を通すにはどうルールを書けばいいか考えていたら、意外と難しかった。
備忘のためにメモ。
まず、Passive モードのセッションの流れを書いておく。

Server Port       Client Port
21          ←    1024以上
21          →    1024以上
1024以上    ←    1024以上
1024以上    →    1024以上

我ながらアバウトだな・・・。
で、OUTPUT チェインでポートを指定しない「--state ESTABLISHED,RELATED」のルールがあると楽なんだけど、必要以上にポートが開いてしまう恐れがあるので今回は使わない前提でいく。
先に ip_conntrack_ftp をロードしておくのはお約束。
書き方は色々あると思うけど、コントロールポートとデータポートを別々に書いた方が分かりやすかったので

iptables -A INPUT  -p tcp --dport 21 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 21 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT  -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT

こんなところかな。
本来なら3行目で state が NEW のパケットも許可しないといけないはずだけど、そこは ip_conntrack_ftp がうまくやってくれるみたい。
って、こんなので悩むぐらいなら SCP にしてしまった方が早いね。

Domain-U のゾンビ

CentOS5.3 の Xen 環境で、ある日、Domain-U のひとつがゾンビになってしまった。
xm list で見るとドメイン名の頭に「Zombie-」が付いているので一目瞭然。

# xm list
Name                    ID Mem(MiB) VCPUs State   Time(s)
Domain-0                 0     1763     2 r-----     44.9
Zombie-hogesite          4      249     1 -b----      0.0

state が c(crashed) とか d(dying) じゃないのでそんなに深刻ではないのかなぁ、と思いつつ、xm shutdown とか xm destroy を実行してみたらどちらもまったく反応なし。
そこで一旦 xendomain を stop してみると

# /etc/rc.d/init.d/xendomains stop
Shutting down Xen domains: Zombie-hogesite(save).....Error: Domain '1' does not exist.
/etc/rc.d/init.d/xendomains: line 181: 4240 終了しました     watchdog_xm save
 SHUTDOWN_ALL .All domains terminated
/etc/rc.d/init.d/xendomains: line 299: 4240 終了しました     watchdog_xm save
[done]                                        [ OK ]
/lib/lsb/init-functions: line 21: 4433 終了しました     watchdog_xm shutdown 1

どうやらゾンビになった Domain-U が save されたみたい。
もう一度 xendomains を起動してみると

# /etc/rc.d/init.d/xendomains start
Restoring Xen domains: Zombie-hogesite.
[done]                                        [ OK ]

リストアが走って復活してしまった。
復活しなくていいのに・・・。
文字通りゾンビだね。
しょうがないので保存されたステートファイルがどこに置いてあるのか探してみる。
/etc/rc.d/init.d/xendomains を見てみると $XENDOMAINS_SAVE という変数があるので、保存されるディレクトリはここだろうとあたりをつけて /etc/sysconfig/xendomains を見たら、この変数に /var/lib/xen/save がセットされていた。
試しに、もう一度 /etc/rc.d/init.d/xendomains stop してから /var/lib/xen/save を見たら

# ls -l /var/lib/xen/save
合計 256340
-rwxr-xr-x 1 root root 262214481  5月  7 11:53 Zombie-hogesite

やっぱりここか。
このファイルを削除してから、再度 xendomains を start したら今度こそ消えてくれた。
この後、ゾンビになった Domain-U のイメージファイルが壊れているのに気付いてヘコんだけど、xendomains の動きがちょっとだけ分かったので、まぁ、プラマイゼロってとこかな。