花了一番工夫,弄了二天才搞定OTL
Dell OpenManage Server Administrator (OMSA) 在 Debian 上好裝是好裝…
而且還有漂亮的 HTTPS 網頁界面!
不過抓不到自家的 PREC H700 = =a
大概是由於從 lspci 中發現 Debian 直接辨識成 LSI MegaSAS 9260 的關係吧?
也懶得再去動驅動了…其實是個人很怕去動 Linux 的驅動,怕一動就一圑亂(;´∀`)
找 LSI 自家的 MegaCli 與 MegaRAID Storage Manager (MSM) 來裝看看吧…
沒想到只提供 rpm 套件Σ(´∀`;)
不過 LSI 也有說明如何轉成 deb 套件啦…
$alien -k --scripts *.rpm 就會生成 *.deb 了!
看樣子很好實作…才不!
就是 MegaCli.rpm 生不出來!
雖然畫面會顯示 MegaCli.deb is generated
不過就是沒這個檔案生出來 OTL
想說不理這個好了,我裝 MSM 總行了吧!
沒想到用 alien 轉出來的 MSM.deb 裝了以後會產生無窮 java 迴圈 ('A`)
而且還不曉得怎麼乾淨地移除掉 MSM
只好重灌一次 Debian 6 amd64
還好 Debian 重灌很方便 (´∀`)
這回仔細來 Google 解決辦法…
發現可以直接用 alien 把 rpm 解開!
$alien -g MegaCli-4.00.11-1.i386.rpm
然後直接用解出來的 MegaCli64 執行檔就可以了!
這下子問題又來了,當哈滴出問題時該怎麼 email 通知我?
再 Google 找解答
發現可以用 awk 的方式來比對 MegaCli64 -PdList -aALL 輸出結果
小弟我又稍微修改了一下原來網友提供的程式碼如下:
語法:
# This is a little AWK program that interprets MegaCLI output
# using $ /opt/MegaRAID/MegaCli/MegaCli64 -PdList -aALL | awk -f /opt/MegaRAID/MegaCli/CheckRAID.awk
# to show error msg.
# imported data
/Device Id/ { count += 1; device[count] = $3; alert[count] = 0 }
/Firmware state/ { state[count] = $3 }
/Inquiry Data/ { model[count] = $3 }
/Drive has flagged a S.M.A.R.T alert/ { smart[count] = $8 }
END{
# check hard disk has error or not.
for(i=1; i<=count; i+=1){
if(state[i] != "Online," && state[i] != "Hotspare,"){
alert[i] = 1;
}
if(smart[i] != "No"){
alert[i] = 1;
smart[i] = "Bad.";
}else{
smart[i] = "Good.";
}
}
# print which hard disk is bad.
for(i=1; i<=count; i+=1){
if(alert[i] == 1){
printf( "Device %02d (%s) is: %s and S.M.A.R.T is %s \n",
device[i], model[i], state[i], smart[i]);
}
}
}
之後只要$ /opt/MegaRAID/MegaCli/MegaCli64 -PdList -aALL | awk -f /opt/MegaRAID/MegaCli/CheckRAID.awk
當有哈滴的狀態不是 Online 或 Hotspare 的話,
又哈滴的 S.M.A.R.T 有錯誤的話,
就會把那顆有問題的哈滴資訊 print 出來。
問題又來了,哈滴資訊印出來了要如何 email 通知我呢?
因為哈滴沒問題時,我不希望也會被 email 通知的關係,
所以用 test -s 判斷 CheckRAID.awk 輸出是不是空訊息?
如果不是空訊息才會把內容 email 給我。
語法:
#!/bin/bash
MSG="/opt/MegaRAID/MegaCli/CheckRAID.txt"
/opt/MegaRAID/MegaCli/MegaCli64 -PdList -aALL | awk -f /opt/MegaRAID/MegaCli/CheckRAID.awk > $MSG
test -s $MSG && mail -s "RAID ERROR MSG." [email protected] < $MSG
再來就是把這個 scripts 列入 crontab 裡就算完成了吧?
書籤