
Ubuntu日本語フォーラム

ログインしていません。
お世話になります。
環境:XPとUbuntu9.04のデュアルブートで
http://journal.mycom.co.jp/column/system/011/index.html
を読んでsmartmontoolsをインストールしました。
sudo smartctl -a /dev/sda でS.M.A.R.Tの情報を参照することはできますが、常駐しようとすると、
masayukiya@masa2:~$ sudo /etc/init.d/smartmontools start
/etc/default/smartmontools: 13: /dev/sda: Permission denied
となりました。Ubuntuが入っているのは /dev/sda5 なので /etc/init.d/smartmontools の /dev/sda を /dev/sda5 に書き換えましたが
masayukiya@masa2:~$ sudo /etc/init.d/smartmontools start
/etc/default/smartmontools: 13: /dev/sda5: Permission denied
となりました。
下記が/dev/sda を /dev/sda5 に書き換えたあとの /etc/init.d/smartmontools です。記述に間違いがあるのか、「端末」でのやり方が間違っているのか分かりません。どうすればいいか、教えてください。よろしくお願いします。
# Defaults for smartmontools initscript (/etc/init.d/smartmontools)
# This is a POSIX shell fragment
# List of devices you want to explicitly enable S.M.A.R.T. for
# Not needed (and not recommended) if the device is monitored by smartd
enable_smart="/dev/sda5"
# uncomment to start smartd on system startup
start_smartd=yes
# A very silent check. Only report SMART health status if it fails
# But send an email in this case
/dev/sda5 -H -m masayuki@*****
# uncomment to pass additional options to smartd on startup
#smartd_opts="--interval=1800"
最後の編集者: masayuki (2009-04-30 09:15:02)
オフライン
masayuki による投稿:
となりました。Ubuntuが入っているのは /dev/sda5 なので /etc/init.d/smartmontools の /dev/sda を /dev/sda5 に書き換えましたが
S.M.A.R.T.情報はパーティションでなくディスク単位のものなので、/dev/sda で良いと思います。
masayuki による投稿:
/etc/default/smartmontools: 13: /dev/sda5: Permission denied
ということで、/etc/default/smartmontools の 13行目、すなわち
masayuki による投稿:
/dev/sda5 -H -m masayuki@*****
ここがうまくいっていない、という事になります。
ここで
http://journal.mycom.co.jp/column/system/011/index.html
を見てみましたが、
smartdは、一度起動すると「smartd.conf」設定ファイルの記述に従い常駐プロセスとして動作する。
とのことなので、まず、この設定は /etc/default/smartmontools ではなく、 /etc/smartd.conf にするとよいのではと思います。
次に、エラーメッセージと直接関係なくなりますが・・・
今回はエラーをメールで送ろうとしているわけですが、ここに設定しただけでは別にmasayukiさんご契約のプロバイダのSMTPサーバにアクセスして
メールを送ってくれるわけでもないので、何かしらのMTA(メール転送エージェント)をインストールしてやらねばならないような感じです。
もともと
smartdがPC内部でメールを作る→PC内部のMTAに渡される→内部MTAがPC内部のユーザにメールを届ける
というものなので、例えばThunderbirdやSylpheed、携帯電話にメールを送るなら
smartdがPC内部でメールを作る→PC内部のMTAに渡される→内部MTAがプロバイダのメールサーバにリレーする→プロバイダのMTAがプロバイダのmasayukiさんアカウントや携帯のメールサーバにメールを届ける→それを受け取る
か、自分のPC内部専用メールサーバを立てて、ThunderbirdやSylpheedに「自分のPC内部専用メールサーバのアカウント」を設定して受信する
の流れを作ってやらなければいけなかったはずです。
(合ってるかどうかあまり自信がありません、詳しい方お力添え頂ければ・・・)
UbuntuでMTAを入れて、プロバイダにリレーするための「ちゃんとした」やり方は、私は力及ばずわかりかねます、
どなたかお力添え頂けませんでしょうか。
オフライン
ackさん、有り難うございます。
1)参考にしたページの「smartdは、一度起動すると「smartd.conf」設定ファイルの記述に従い常駐プロセスとして動作する」を読んで、smartd.confを「ファイルの検索」でさがしたのですが、見つからず、勝手な解釈で
# A very silent check. Only report SMART health status if it fails
# But send an email in this case
/dev/sda5 -H -m masayuki@*****
を/etc/init.d/smartmontoolsに書き込んだのが間違いでした。
2)再度、smartd.conf を検索したのですが、みつかりませんでしたが、#A very silent ... 以下はsmartd.conf に書き込むべきものと考え、この部分をetc/default/smartmontoolsから削除して、「端末」で smartdを起動すると
masayukiya@masa2:~$ sudo /etc/init.d/smartmontools start
[sudo] password for masayukiya:
* Enabling S.M.A.R.T....
* /dev/sda... [ OK ]
* Starting S.M.A.R.T. daemon smartd [ OK ]
と起動出来たようです。
3)/etc/smartd.conf と書いていただいたので /etc/のなかにファイルを見つけることができました。(探し方がわるかったのか、smartdが起動後、作成されたのかはわかりません) その中に下記の記述がありましたが、
# A very silent check. Only report SMART health status if it fails
# But send an email in this case
#/dev/hdc -H -C 0 -U 0 -m [email protected]
とりあえず、そのままにしました。
メールについてはもう少し勉強してみます。
最後の編集者: masayuki (2009-04-30 16:33:17)
オフライン
ひとまずsmartdは動作したようで何よりです。
masayuki による投稿:
メールについてはもう少し勉強してみます。
Ubuntuの標準MTAはPostfixのようなのですが、
https://help.ubuntu.com/community/Postfix
私には難しくてまだ良く分かっていません。
一応、設定を完遂できた、私のわかる方法を投稿致します。
1. nbsmtp を入れる
「メールを SMTP 経由で他のメールサーバに送信するためのシンプルな MTA」@Debianの日本語の解説 http://packages.debian.org/ja/sid/nbsmtp
がUbuntuにもある
http://packages.ubuntu.com/ja/jaunty/nbsmtp
ので、これを使うことにします。
sudo apt-get install nbsmtp
2. nbsmtp を設定
sudo gedit /etc/nbsmtprc
/etc/nbsmtprc がシステム全体の設定なので、これに設定をします。例えば
# Example nbsmtprc for Debian # If you want to use nbsmtp you should copy this file # to $HOME/.nbsmtprc and change it. # Have a look at nbsmtprc (5). ##The host we want to relay over #relayhost = mail.myprovider.tld relayhost = mail.example.co.jp ← プロバイダのSMTPサーバ ##Our address (will be used in the MAIL FROM command) #fromaddr = [email protected] fromaddr = [email protected] ←メールの送信者(From: )のアドレス ##The domain to send in the HELO/EHLO command #domain = myprovider.tld domain = example.co.jp ←プロバイダのドメイン名 ##Username for authentification (only if necessary) #auth_user = [email protected] auth_user = [email protected] ←自分のメールアドレス。メール送信時に認証がある時に使われる。 ##Password for authentication (only of auth_user is set) #auth_pass = myspecialsecret auth_pass = mailpasswd ←メール送信時の認証に使うパスワードが ##Auth mechanism (l = LOGIN / p = PLAIN) #auth_mech = l auth_mech = l ←認証方式。プロバイダによってデフォルトのl(小文字のL)のログイン方式ではだめかもしれない ##If you want a secure connection (true / false) #use_tls = false ←セキュア接続が出来るところならtrueでセキュア接続 ##Whether to use STARTTLS command (true / false) #use_starttls = false ←セキュア接続が出来るところなら多分true port = 587 ←SMTPサーバに25番ポートでなく587番ポートでアクセスするよう指示のあるプロバイダならこう書き足す。
3. 設定がうまく出来てるか試す
geditなどで、以下のようなテストメール文を作ります。例えば text.txt などとして保存しておきます。
From: [email protected] To: [email protected] Subject: Test Test.
文字エンコーディング等考慮するのも面倒なので英語の文にしておきます。
FromとToとSubjectだけ書き、空行を1行開けて(重要)何か一言書いておきました。
書き終わったら端末で
cat test.txt | nbsmtp -n -V -c /etc/nbsmtprc
と実行します。端末に挙動のログが流れ、設定が合っていればプロバイダにメールが中継され、テストメール文のTo: で指定したアドレスにメールが届きます。
4. /etc/smartd.conf に、
/dev/sda -H -m user@~
で、報告メールを送りたい送り先を指定
5. sudo /etc/init.d/smartmontools restart
私が試した限り、これでsmartdサービスは * Starting S.M.A.R.T. daemon smartd [ OK ] を出して起動してくれます。
nbsmtpの設定は3. で確認してはいますが、実際に障害時に自動的にメールがやってくるかは確認できていません。
あと、この状態はシステムのMTAがnbsmtpになっており、そのnbsmtpがプロバイダにメールを送るようにしているので、
もしかするとsmartd以外のUbuntuの常駐サービスもプロバイダにメールを送り始めるかもしれません・・・
※どなたかPostfixを使った真っ当でオススメな方法をご教示下さいm(_ _)m
オフライン