お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2009-04-30 09:13:13

masayuki
メンバ
登録日: 2009-02-16

S.M.A.R.Tの常駐ができません

お世話になります。
環境: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)

オフライン

 

#2 2009-04-30 12:07:42

ack
メンバ
登録日: 2007-06-01

Re: S.M.A.R.Tの常駐ができません

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を入れて、プロバイダにリレーするための「ちゃんとした」やり方は、私は力及ばずわかりかねます、
どなたかお力添え頂けませんでしょうか。

オフライン

 

#3 2009-04-30 16:31:22

masayuki
メンバ
登録日: 2009-02-16

Re: S.M.A.R.Tの常駐ができません

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)

オフライン

 

#4 2009-04-30 18:11:02

ack
メンバ
登録日: 2007-06-01

Re: S.M.A.R.Tの常駐ができません

ひとまず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

オフライン

 

Board footer

Powered by FluxBB