使用shell檢測raid狀態並製做表格發送到郵箱

cat raid_fzt.sh
#!/bin/bash
#data:2018.3.9
#check raid status and mail to someone
DIR="/home/s/ops/pantheon/argos/raid.check"  # 腳本所在目錄
cd $DIR
LOG='raid_check.2018-03-09_11:17:31'
#LOG=$(ls -t raid_check.`date +"%F"`.* | xargs echo | cut -d ' ' -f 1 )
BAD_RAID=$(python /raid.check/marshalv3.py  $LOG ) #有問題Raid的列表

html_input(){
echo "<tr>
<td>$1</td>
<td>$2</td>
<td>$3</td>
<td>$4</td>
</tr>" >>$DIR/mail.html
} #構造一橫行表格信息

set_info(){
echo "<head>
<meta http-equiv="Content-Type" content="text/html\;charset=UTF-8">
<p><font color="red">以下服務器硬件報警,請業務儘快報修,報修時請在報修工單中寫明故障信息。</font></p>
</head>
<table border=1>
<tr>
<th>主機信息</th>
<th>Hermes信息</th>
<th>接口負責人</th>
<th>業務負責人</th>
</tr>" > $DIR/mail.html
    host_list=$(grep $1 raid_info | awk '{print $1}') #主機信息列表
    for html_host in $host_list
    do
        html_owner=$(grep $html_host raid_info | awk '{print $4}') #對應owner信息
        html_hermes=$(grep $html_host raid_info | awk '{print $2}') #對應hermes信息
        echo $html_host $html_hermes $1 $html_owner
        html_input $html_host $html_hermes $1 $html_owner #構造每行表格信息
    done
echo "</table> 
<p><font>若有問題請聯繫: </font> <a href="mailto:go-sa@mail.net">  go-sa@mail.net</a> </p>
<p><font face="arial" color="red">此郵件爲系統發送,請勿回覆!!! </font></p>" >> mail.html
#cat mail.html >> all.html  # 報表彙總
mutt mubai@mail.net -s "Raid check" -e  "set content_type=text/html"  < $DIR/mail.html #發送郵件
#mutt $1 -s "Raid 檢測報警" -e  "set content_type=text/html"  < $DIR/mail.html
}     # 製做mail.html,並使用郵件發送

for host in $BAD_RAID
do
    HERMES=$(Pwhoismycluster $host | grep "hermes:" -A 1 | sed -n '2p' | cut -d : -f 1 | sed 's/[[:space:]]//g') #
    OWNER=$(curl -s "http://10.95.22.14:9093/element/findServerUserBy" -H "Content-Type: application/json" -d '{"HostnameIn":"'$host'"}' | grep -Po '"owner":".*?"' | awk -F ":" '{print $NF}' |sed 's/"//g')
    OPS=$(curl -s "http://10.95.22.14:9093/element/findServerUserBy" -H "Content-Type: application/json" -d '{"HostnameIn":"'$host'"}' | grep -Po '"ops":".*?"' | awk -F ":" '{print $NF}' |sed 's/"//g')
    OPS=${OPS:=fanzhengteng@360.net}
    HERMES=${HERMES:=沒查到HERMES}
    OWNER=${OWNER:=沒查到OWNER}
    # echo $host $HERMES $OPS $OWNER 
    echo $host $HERMES $OPS $OWNER >> $DIR/raid_info
done     # 找到 host hermes ops owner 信息並寫入 raid_info 這個文件中,供後續處理

OPS_LIST=$(cat $DIR/raid_info | awk '{print $3}' | sort | uniq )  # 相同郵件人去重
for html_ops in $OPS_LIST
do
    set_info $html_ops # set_info 來發送郵件
done    
rm $DIR/raid_info  # 刪除 raid_info 這個文件
相關文章
相關標籤/搜索