デビアンな生活 2007年05月

デビアンな生活

日本語コンソールベースのDebianTIPS集として始めたが、結局LXDEになってしまった。

ハードディスクのテスト

最近のグーグルの報告では、ハードディスクの故障の予測にSMARTはあまり有効ではなかったとのことなので、結局はバックアップが大事ということになる。

Failure Trends in a Large Disk Drive Population
Eduardo Pinheiro, Wolf-Dietrich Weber and Luiz Andr´e Barroso
Google Inc. 1600 Amphitheatre Pkwy, Mountain View, CA 94043



ということで結局ハードディスクに求められる性能は速度だ!
# hdparm -t /dev/hda
> リードテストで、読み込み速度を確認
# hdparm -i /dev/hda
> ディスクの情報を確認
問題があるようなら、設定を修正する

スポンサーサイト

メモリーテスト

時々page faultが起こるのは、どうもメモリでエラーの様子。メモリチェックのためにmemtest86+をインストール。/bootにmemtest86+.binがインストールされるので、grubのmenu.lstを更新して再起動。
# aptitude
> memtest86+
# update-grub
# reboot
時間はかかったが、ランダムにエラーが発生しているのが確認できた。とりあえず、BIOSの設定を、PC133からPC100にダウンするとエラーの発生がなくなったので、とりあえず良しとした。
memtest86は、更新されていないので、今回は使用せず。

DNSキャッシュサービス

以前は、IPを手動で設定していましたが、ハードディスクレコーダなどの家電もあるし、サーバを変更したときにゲートウエイを再設定するのもも不便なので、今ではDHCPサーバを使っています。
標準でインストールされるDHCPクライアントがetchではdhcp3にバージョンアップしているので、dhcp3-serveerをインストールしてもよいが、sargeからの流れで、DNSキャッシングもできる、dnsmasqを使っています。
sargeのときは、dhcp-clientが2.0だったので、dhcp-serverとバージョンを合わせるのが面倒で使い始めたdnsmasqだが、MACやコンピュータ名で固定IPの割当もできるのでとても便利です。
設定は、/etc/dnsmasq.confで行います。


# DHCPサーバのインターフェース
interface=eth0
# 割当IPの範囲
dhcp-range=192.168.1.150,192.168.1.199,255.255.255.0,12h
# MACで割当
dhcp-host=00:08:0A:6B:2C:5D,192.168.1.20
# コンピュータ名で割当
dhcp-host=fox,192.168.1.10,infinite


パッケージ管理

aptitudeも慣れると便利。
しかし、画面がどんどんサブ画面になっていくのがわかりにくい。
ENTERでInformationを表示した後は、適時qでPackages画面に戻っておかなければならない。画面上部のガイドを見ると、dの連続押しで、どんどんdependsのサブ画面がネストしていくのがわかる。ほとんどバグのような仕様と思う。
dselectと違って、reinstallの機能があるが、やはりコマンドラインもすてがたい。listの編集で、パッケージの一括管理もできる。
# dpkg --get-selections > list
# vi list
# dpkg --set-selections < list
# apt-get dselect-update

インストールされるファイルの一覧の出力も便利
# dpkg -L memtest86+

deborphanをインストールしておくと、不要なパッケージをさらに削除できる。
# aptget --purge remove `deborphan`

ダイナミックDNS

WebDAVに外部からアクセスするために、ダイナミックDNSを利用しています。
無料のDNSサービスのうち、DynDNS(www.dyndns.com)に登録。IPの更新の用クライアントは、Debianにあるのでインストール。
# aptitude
> ddclinet
> プロトコルは、dyndns2に。その他の質問にも回答してインストール終了。

Bフレッツをルータ越しに使用しているので、このままではIPがローカルとなるので、設定を変更。
# vi /etc/ddclient.conf
> use=if, if=eth1をコメントアウトして
> use=webを追加する
更新間隔の初期設定は5分になっているので、/etc/default/ddclientを編集して、更新間隔を10分に変更。

外部から利用するためには、BフレッツのCTUを設定変更しておく必要がある。
https://ctu.fletsnet.com/CtuC101/init.doで、CTUにログインして、ファイアウォール設定の詳細設定で、80と443ポートを開放。
その後、詳細設定の静的アドレス変換設定(ポート指定)で、80と443ポートをサーバに振り分ける。              

DynDNSの設定がうまくできているかどうかは、外部から確認する必要がある。DNSの確認だけなら、http://www.the-cloak.comなどのWeb-Base Proxyがお手軽。       

コンソール

linuxでは、Alt+ファンクションキーで切り替えれる仮想コンソールやSHIFT+PageUpによる逆スクロールがあり、便利。
しかし、DOS時代の悲しい習性で、高速スクロールすると、思わずCTRL+sを押して、表示を止めてします。しかし、DOSと違って、CTRL+qを押すまで再開しないので、たまにパニックになります。
# stty -a
これは、コンソールのコントロールコードを表示させるコマンドです。
CTRL+d、CTRL+z、CTRL+cの意味がわからない人は、再確認しておくと、便利です。昔のように行編集キーを使わないで済むのには、時代を感じます。

バックアップ

データのバックアップは常に大事ですが、時間がかかる上に、ディスク容量にも限りがあります。DVDバックアップでは管理が大変なので、windows機では、RAID1でミラーリングしています。linuxではSoftware RAIDも使えますが、cronによる定期バックアップをした方が柔軟で効率よくバックアップできます。バックアップにはtarも使えますが、差分バックアップができるdarが便利です。
# aptitude
> dar

# dar -c /opt/test -z -R / -g var -P var/run
これで、/opt/test.1.darにgzipで圧縮されたアーカイブができます。
-cがアーカイブ名、-Rが基準ディレクトリ、-gが対象ディレクトリ、-Pが除外ディレクトリ、-zがgzip圧縮です。

# dar -c /opt/new -y -R / -g var -A /opt/test
これで、testからの差分アーカイブができます。
-jがbzip2圧縮、-Aが参照アーカイブです。
bzip2はgzipよりも圧縮率に優れており、Athlon1Gでは圧縮時間も短く、便利です。darのフルバックアップは、tarとサイズはほぼ同じですが、実行時間はやや短縮しています。また、差分バックアップすると、ほんとに高速で快適です。

# dar -l /opt/new -as
これで、実際に保存されている内容が確認できます。

# dar -x /opt/new -g var/log
これで、logディレクトリが展開できます。

/etc/cron.dailyに下記のようなバックアップスクリプトを入れておけば完璧です。当然、/optは別のハードディスクドライブに割り当ています。



#!/bin/sh
#
# differential backup every day, full backup on Sunday, keep an archive every month
#
do_dar() {
SAVEPATH=$1 ; TARGET=$2 ; OPTI="-w -Q -y -R /"
if test -a ${SAVEPATH}.1.dar ; then
CONDI=`date +\%w`
else
CONDI=0
fi
case $CONDI in
0)
dar $OPTI -c ${SAVEPATH}${CONDI} $TARGET
mv ${SAVEPATH}${CONDI}.1.dar ${SAVEPATH}.1.dar
;;
*)
dar $OPTI -c ${SAVEPATH}${CONDI} $TARGET -A $SAVEPATH
;;
esac
if test `date +\%d` = 01 ; then
cp -a ${SAVEPATH}.1.dar ${SAVEPATH}`date +\%m`.1.dar
fi
}

# main
do_dar /opt/etc "-g etc -g root"
do_dar /opt/home "-g home"
do_dar /opt/var "-g var"
exit 0


ハードウェアモニタリング2

マザーボードのファンや温度の監視にlm-sensorsを使用していたが、BIOSの表示と比べると少しずれている。VIA686は対応チップなので、設定を変更すればよいのだが、面倒なので、mbmonに変更した。
# aptitude
> mbmon
# mbmon -t -c3 60
60秒毎に3回時間付で、温度などを表示してくれる。表示がコンパクトで、よい。

ついでに、ハードディスクもリムーバブルケースより出して、間隔を空け、風通しを良くした。これで、CPUは60℃、システム44℃、ハードディスク50~55℃に、安定した。

samba

メイン機がWindows XPなので、sambaサーバは必須です。
sambaは、sargeからetchでは、3.0.14a-3から3.0.24-6になっただけであり、ほぼそのままです。
# aptitude
> samba
# vi /etc/samba/smb.conf
> [global]で文字コードをセット
> dos charset = CP932
> unix charset = UTF8
> display charset = UTF8
# smbpasswd -a user
> ユーザ登録をして、パスワードを設定
/etc/samba/smb.confでunix password sync = yesを設定していても、rootで、ユーザのパスワードを変更した場合は、unix passwdは変更されない。

機器構成

我が家の機器構成家内LANを100M有線で主たる部屋に張り巡らせているので、サーバがあるととても便利。今回、WebDAVで外部からもファイル共用できるようになり、Bflet's光プレミアムの甲斐があったと感激中。


NTT光プレミアムCTU -- 光電話
 |      |              |
 |  debian実験機  |
 |      |              |
 |  HUB100M -- debianサーバ(etch)機
 |   | |  |  |
 |   | WINDOWS機3台
 |   |
WINDOWS実験機


debianサーバ機
マザーボード: EPOX EP-8KTA3 VIA KT133A Socket A
CPU : AMD Athlon 1G
メモリ: PC133 CL2 512K x2
ビデオ: ATI ALL in Wonder 128 Rage 128
1G LAN: Buffalo LGY-PCI32-GT Altima AC1002PKB
100M LAN: Corega EtherW PCI-TX AMD Am79C973


このマシンを最初に自作したとは、初の1G越えで感動したが、いままでは、Windows機としては力不足。マザーボードとCPU以外は変遷し、他のマシンでエラーが出て使えないメモリを100MHzにクロックダウンして、流用中。今回、debianサーバとして、実験機より昇格したが、常時可動となると、あまりにうるさい。いまさら、このスペックのマシンにお金を投入するのはもったいないが、これで夏を乗り切れれば、安い買い物だと言い聞かせて、静音のCPUファンとケースファンを購入。Core 2 Duoのメイン機に比べるとまだまだうるさいが、電源のファンを止めれば、まずまず静かになった。これで、電源が壊れれば、次は静音タイプを購入だ。時代遅れになっても、いつまでも可愛いマシンです。

ハードウェアモニタリング

気温が高くなったためか、発熱が気になる。
ハードディスクにSMART機能があるので、温度チェック。
# aptitude
> smartmontools
# smartctl -a /dev/hdb | grep -i temp
どうも57℃もあるみたい。ついでに、lm-sensorsもインストールして、本格的にマザーボードの状況チェック。lm-sensorsを使用するためには、まずカーネルを再構成して、I2C supportをyesにしておかなければならない。その後、リブート。
# aptitude
> lm-sensors
# sensors
CPU温度はOKだが、システム温度が57℃になっている。
これでは、夏を乗りきれそうにない。
早速、ケース背面にファンを追加した。
これで、ハードディスク、ケース内とも47℃に落ち着いたので、少し安心。

FC2Ad