Ubuntu
2011年10月27日
Ubuntuでサービスの自動起動を簡単に設定する
今日UbuntuサーバのWebminにアクセスしようとしたところ失敗。同サーバのphpMyAdminにはアクセスできたので、どうもWebminが走ってない様子。
そういえば以前も別のサーバで同じことがあったような気が…。
どのみち必要なのでまずはWebminを起動します。
# service webmin start
で、WebminでWebmin自身の自動起動の設定を見てみると、何故か自動起動しない設定に。
当然自動起動に設定しようとしましたが、なぜか受け付けてくれません。
サービスの自動起動を設定しないといけないのか…。またランレベルがどうのこうのとややこしいから嫌なのよねぇ。
とか思いながらググってたら簡単なのを発見。
# apt-get install rcconf
# rcconf
ちょうどtaskselと同じような画面で簡単に設定できます。
何故か描画が乱れますが、まあ使用に差し支えはありません。
こんな便利なのがあったのね…。
最近買って、とてもよかった本。
かなり易しい入門書です。
2011年02月03日
新しいHDDにLinuxシステムを移行する
まいどまいど御無沙汰です。
今日はUbuntu-Serverのシステムを新しいHDDに移行する話です。
これまでは1TBのHDDのうち、20GBがシステム、1GB弱ほどのSwap、残った全てが /home (=データストレージ)、といったパーティション分けで使ってきました。
稼働し始めてから2年と少し経っていますが、しばらく前から残容量をやりくりしないといけないようになり、さらにここに来てデータトラブルが出てきたことから、2TBHDDへ移行することにしました。
もともと1TBのHDDに対して1TBのHDDをバックアップ用として使用していますので、今回も2TBのHDDを2台買ってきました。
買ったのはWD20EARS。2TBで8,000円とはいい時代になったもんですね。
結構色々苦労しましたが、大きな問題点として
- grub のインストール
- Advanced Format に関する問題
の二つがありました。
本当は苦労話を書きたいところですが、書いているうちに飽きてくると思うので、次同じことを行なうときの為のメモのみを。
実際には上記2は後から改めて対処してますので、HDDの移行は2回行なってたりします。
1. 新しいHDDにパーティションを作る。
Advanced Format の問題がありますので、セクタ単位(?)で手動で切っていきます。
# fdisk /dev/sdb
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First sector (63-3907029167, default 63): 2048
Last sector or +size or +sizeM or +sizeK (2048-3907029167, default 3907029167): 41943103Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First sector (63-3907029167, default 63): 41943104
Last sector or +size or +sizeM or +sizeK (41943104-3907029167, default 3907029167): 3902834855Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 3
First sector (63-3907029167, default 63): 3902834856
Last sector or +size or +sizeM or +sizeK (3902834856-3907029167, default 3907029167): <CR>
Using default value 3907029167Command (m for help): w
2. grubのインストール
色々調べて試してみたものの、結局うまくインストールできませんでした。仕方ないので、さっき作ったパーティションにOSをクリーンインストールしました。インストールの最後に行なわれるgrubインストールの為だけに。(^^)
うまくいけばそれでいいのさっ。
3. /homeのコピー
これはrsyncを使いました。
サーバはなるべく止めたくないので
-
rsyncで全てをコピー
-
メールサーバ関連、Samba関連等を全て止めてからrsyncで差分コピー
という2段仕込みにしました。
4. システムのコピー
grubの為にCDからインストールしたシステムパーティションの中身を全て削除してから、コピー先のフォルダにて
# /sbin/dump -0f - /dev/hda1 2>> (ログファイル) | restore -rf -
としてコピー。
このままですと起動時にマウント失敗しますので、/etc/fstab のマウントドライブを /dev/sda 等に替えておきます。
5. update-grub
起動時の呼び出しドライブ情報と、実際に呼び出されるドライブの情報との整合性がとれていない為、このままでは起動できません。
一番簡単なのは、インストールCDから起動し、レスキューモードからupdate-grubすることだと思います。
何も考えなくても、これだけでうまく調整してくれる様です。
--------------------------------
これでうまくいくはずです。
ついさっき終わったばかりの作業を書いているので、たぶん抜けはないかと…。
また次に、もっと容量を、となる時にはパーティション等で苦労しそうです。
--
いつの間にか新しいのが出てたようです。
2010年10月01日
WINSサーバの二重化
さて先日やらかした失態。
WINSサーバとして運用している機体をうっかり再起動してしまい、さらに何故か起動に10分以上の時間がかかり、その間名前解決ができず…というもの。
まあ営業時間中に再起動すること自体がダメダメなんですが、障害の可能性も含め対策して於いた方が良いかと思い、WINSサーバの二重化を試みます。
そもそもVPNでネットワーク同士を繋いでいるためにWINSサーバが必要でした。このとき同時にDMBも必要と思い、VPNのこっち側とあっち側にそれぞれSambaをたてており、そのうちこっち側のみがWINSサーバとして稼働しています。
あっち側はDMBの同期の為だけに稼働していましたが、最近になって、そもそもDMBは不要だったのではないか…と感じているのは内緒。^^
ともかく、ちょうど2台目のWINSサーバに最適な機体がありますので、これを設定していきたいと思います。
(備忘録ですから簡潔に書いていますが、正常稼働までには何気に苦労しています。^^)
参考文献:
http://wiki.samba.gr.jp/mediawiki/index.php?title=WINS-replication
http://www.osstech.co.jp/techinfo/samba/wins-push
まずwinzsendを試しましたが、私の知識ではうまく動かすことができませんでした。
CPANというものも(Google先生のおかげで一応操作できましたが)初めて見るものだったこともあって、うまく動かない時の障害切り分けができないため、少しいじくって早々にあきらめました。
で、wins-pushの方でうまくいきましたので、そのメモ。
まずwins-pushを解説に従って設定していきます。
現WINSサーバにインストール
# mkdir /usr/local/sbin/wins-push
# chmod 755 /usr/local/sbin/wins-push
# wget http://www.osstech.co.jp/_media/techinfo/samba/wins-push.pl /usr/local/sbin/wins-push/.
2台目WINSサーバを指定するための設定ファイル作成
# echo "wins servers = 192.168.???.???" >/etc/samba/wins-push.conf
(???は2台目WINSサーバのアドレスを指定)
状態保持用ディレクトリを作成
# mkdir /var/cache/samba/wins-push
現WINSサーバのSambaの設定を変更
# vi /etc/samba/smb.conf
[global]
wins hook = /usr/local/sbin/wins-push
2台目のSambaも設定変更
# vi /etc/samba/smb.conf
[global]
wins support = yes
これでそれぞれのSambaを再起動したところ、2台目のwins.datにきちんと情報が追加され行くことを確認しました。
(Sambaの再起動に手間取りましたが…)
次にWindwosに渡しているWINSサーバの情報に、両サーバのアドレスを渡すようにしました。(アドレスは渡せましたが、障害時にうまく動いてくれるかは判りません)
各PCのIPアドレスは管理の都合上DHCPで取得させています。DHCPサーバはルータ(YAMAHA RT-58i)を利用し、配布するIPアドレスはMACアドレスを基に固定となってています。
従って、ルータの設定を少し変えるだけで全PCのWINSサーバ情報が(次回接続時より)更新されます。
設定はルータGUIの「コマンドの実行」に
wins server 192.168.???.??? 192.168.???.???
(1台目2台目それぞれのIPを指定)
とするだけです。
ここで注意事項。
winssendの方で、双方向にデータのやりとりができるスクリプトであると説明がありました。
(引用)
双方向レプリケーション
ver 0.02 までは片方向レプリケーションしか出来ませんでした。ある1つのマスタとなるwinsサーバを立ち上げておいて、ここから他のwinsサーバに対してデータを配信することしか出来ませんでした。
ver 0.13からは双方向(pushのみ)のレプリケーションが出来るようになりました。それぞれのwinsサーバにwinssend.plを設定することで、互いに他のwinsサーバに対してデータを供給できるようになりました。ただ、そのままでは他のwinsサーバから登録要求があったデータもwinssend.plを起動して、また他のwinsサーバにデータを送り込んでしまいます。そこで、winssend.plでは自分自身が所属しているネットワーク以外からのデータは送り出さないようにしています。これで、winsデータの白山羊さん黒山羊さん問題を解決できます。
winssendを基にしたとされるwins-pushの方も同様かと思いましたが、当方の環境では双方向ではうまく動いてくれませんでした。
一方通行のみに設定したところ、うまく動いてくれています。
まあ、あくまで非常用ですから現状で問題ありません。
私が「いらんこと」をしなければ、そうそう障害も起こらないでしょうしね…。
2010年08月25日
メールサーバのSMTP認証(SASL)
iPhone4買いました。Kindleも予約注文しました。
このへんの話もそのうち書くでしょう。^^
さて Postfix について。
Linuxサーバ自体から出るシステムのメールや、その他PCから自動で発信するメールのSMTPサーバとしてPostfixを使用しています。ただ、ドメインは所持しているもののDDNSによる運用のためか、Postfixを単純なSMTPサーバとして運用しようとしても誰もリレーしてくれません。
そこでISPのSMTPサーバをリレーホストとしていますが、最近このサーバが送信に認証を求めてくるようになりました。
そこでSASLという仕組み(?)を利用して認証することにしました。
先ずPostfixの設定を変更します。
/etc/postfix# vi main.cf
とし、
relayhost = [SMTPサーバ名]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
を追加(または変更)します。
次に認証情報のファイルを作ります。
/etc/postfix# vi sasl_passwd
とし、
[SMTPサーバ名]:587 アカウント:パスワード
と一行記述します。
最後に認証情報のファイルをdb化し、Postfixを再起動します。
/etc/postfix# postmap ./sasl_passwd
/etc/postfix# /etc/init.d/postfix restart
これで無事にメール送信ができるようになりました。
さて、実際には少し手間取りました。
認証情報をdb化しようとしたところでpostmapが使用できないというものです。
(Ubuntu9.04からアップグレードした9.10に於いて)
mailをインストールしろといわれるので試みたところPostfixが削除され、再インストールしてもうまく動かず、いろいろいじったり再起動したりしているうちにちゃんと動くようになりました。
実際にどう復旧したかは今となってはよくわかりません。
一方、Ubuntu10.04をクリーンインストールしたサーバの方では同様の問題は起こりませんでした。
試みる場合、少し注意した方がいいかもしれませんね。
2010年06月28日
オーディオ関連のバグか?
忙しさにかまけて暫く放置していたUbuntuサーバ。現行サーバとの交換用に用意しているんですが、いい加減に本運用に移りたいところです。
さて、久しぶりに電源を投入してみたところ…
hda-intel: spurious response 0x0:0x0, last cmd=0x000000
hda-intel: spurious response 0x0:0x1, last cmd=0x000000
・
・
と、メッセージが延々とコンソールに表示され、起動しません。
仕方なく電源長押しで強制終了後、再び電源投入。
すると問題なく起動してきます。
よくわからないままアップデートをし、再起動。
するとまた同じメッセージが延々…。こんどは何度再起動しても正常に起動しません。
ということで、例によってGoogle先生に聞いてみたところ、以下のような情報が。
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/536699
問題の機体はD945GCLF2ですが、まあ同じことでしょう。
英語が面倒ですが、どうもオーディオ関連のバグ、と書いてあるような気がしないでもない…。
ならばと、どうせサーバ用途でオーディオは不要ですからBIOSで切ってしまいました。
というか、オーディオとかパラレルとか、不要なものは切ったつもりだったんだけどなぁ…。全部有効になってました。^^
これらを無効にして起動を試みたところ正常起動。
その後数回再起動をかけましたが、正常に稼働しています。
既に本運用している同構成のもう一台は、BIOS設定きちんとしてたかな…?
あとで確認しとかないと。
今買うならこちら。
今のところ不具合等ありません。
2010年05月05日
Sambaで共有しているフォルダのファイル表示が遅い件
いつの頃からか、WindowsからSamba共有フォルダを開く際に、ふた呼吸くらい置いてからファイルリストが表示されるようになりました。それまでは瞬時と言っていいくらいの表示でしたので、結構待たされ感があります。
おそらくSambaのアップデートによりシンボリックリンクのフォルダが開けなくなったのと同じタイミングだと思われます。
例によってググってみたところ、空き容量の計算に時間がかかっているのが原因という説を発見しました。
ただその説は、アクセス毎に2回計算している、というもの。私の場合はある程度時間をおいた後のアクセスのみ遅いので、ちょっと違うかと思いますが、一応試してみました。
smb.confに
[global]
dfree cache time = 60
とし、空き容量の計算を60秒ごとに設定してみました。
結果は…
期待通りです。以前のように瞬時に表示されるようになりました。
これでSambaに関する問題はもう残っていないと思います。
ただ、cron-aptによる自動アップデートは見直した方がいいのかもしれませんね。
2010年04月21日
フォルダのシンボリックリンクをSambaで共有
いつぞやのアップデート以降、Sambaで共有しているフォルダ内にある他フォルダのシンボリックリンクにアクセスできなくなりました。
まあセキュリティーの基本設定が変わったんだろうなぁと何となく納得。
とはいえ不便です。
閉じたネットワーク内でしかアクセスしないサーバですし、以前の状態に戻すことにします。
smb.conf に
[global]
wide links = yes
follow symlinks = yes
unix extensions = no
と設定。
(2010.5.17 Ubuntuを10.04にアップデートしたところ再びシンボリックリンクへアクセスできなくなったため下線部追加。)
めでたしめでたし。
2010年03月03日
Postfixの仕様変更?
サーバ等で行なう定期作業やエラーを、自動でメール連絡させるようにしています。
最近になって、これらメールのうち幾つかでメールヘッダに「Date:」項目の無いものがあることに気づきました。
Date:項目がないと、メールソフトがメールを取り込んだ日時でタイムスタンプを押す様子。
これは色々と問題があるので、ちょっと調べてみました。
これら連絡メールは Linux サーバの「Postfix」をSMTPサーバとして発信させています。
以前はメール送信の際にDate:項目がない等、ヘッダ部に不備があるとPostfixが補完してくれていたんですが、これがうまく働いていない様子。
ググってみると、どうもバージョンアップでデフォルト設定が変わった様です。
ということで、「ヘッダ部の不備は補完しなさい」と明示的に指示してあげなければなりません。
設定ファイル ( /etc/postfix/main.cf ) に次の一文を追加してやります。
always_add_missing_headers = yes
これでメールヘッダがちゃんと補完されるようになりました。