使用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:[email protected]">  [email protected]</a> </p>
<p><font face="arial" color="red">此邮件为系统发送,请勿回复!!! </font></p>" >> mail.html
#cat mail.html >> all.html  # 报表汇总
mutt [email protected] -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:[email protected]}
    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 这个文件

原文地址:http://blog.51cto.com/19941018/2085958

时间: 2024-08-01 03:08:20

使用shell检测raid状态并制作表格发送到邮箱的相关文章

shell检测网站状态码和访问时间

[[email protected] script]# cat test_site.sh  #!/bin/bash      SITES=("http://10.0.0.2" "http://www.163.com") # 要监控的网站   NOTICE_EMAIL='[email protected]'                                 # 管理员电邮   DATE=$(date +%Y-%m-%d' '%H:%M:%S) funct

MegaCli 监控raid状态

MegaCli是一款管理维护硬件RAID软件,可以通过它来了解当前raid卡的所有信息,包括 raid卡的型号,raid的阵列类型,raid 上各磁盘状态,等等.通常,我们对硬盘当前的状态不太好确定,一般通过机房人员巡检来完成,有没有通过软件的方式来检查确定这个问题呢.MegaCli就可以做到,一般通过 MegaCli 的Media Error Count: 0 Other Error Count: 0 这两个数值来确定阵列中磁盘是否有问题:Medai Error Count 表示磁盘可能错误,

html5制作表格

今天学了html5制作表格的方法,其中,有一些基础的用法要给大家介绍一下: 表格的基本格式 格式: <table> <tr>… <th>…</th> <th>…</th> <th>…</th> </tr> <tr> <td>…</td> <td>…</td> <td>…</td> </tr> </t

线上一个简单检测Ping状态的邮件报警脚本

Step1.安装sendmail来发邮件 # yum -y install sendmail # /etc/init.d/sendmail start # chkconfig sendmail on Step2.安装邮件客户端 # yum -y install mutt 2.1添加发件人信息,如下 # vim /etc/Muttrc set charset="utf-8"           #设置发邮件编码 set envelope_from=yes set rfc2047_para

一个检测应用状态的脚本

#!/bin/sh #Description:       Check ICE3.0 State #Last Update:       2014/06/11/01 WORKDIR=`pwd` export REPORTDIR=$WORKDIR/`date "+%Y%m%d%H%M%S"` export TG=`date "+%Y%m%d%H%M%S"` export BEGIN=`date -d "-1 hour" "+%H:%M:%

5.2 Dreamweaver制作表格

表格当初主要用于数据的格式化显示,现在表格更多地用于排列网页中的内容,今天我们就一起来看看在Dreamweaver CS3里如何创建表格,以及如何使用表格对网页中的图文进行布局. 一.什么是表格布局 表格布局就是为了精确定位.合理安排网页中的文字.图片等元素,它就像网页的脸面,是在一个限定的面积范围内合理安排.布置图像.文字等元素的位置,从而设计出版式漂亮的页面.如图1所示,就是一个使用表格布局的页面. 图1 表格布局文字和图片 二.表格的使用 如果我们要实现如图1所示的表格布局页面,该怎么办?

使用RAID阵列卡制作RAID 10 和RAID 5 步骤

公司最近进了几台带有RAID阵列卡的测试机,对于我们公司产品来说,这几台服务器的性能倒是非常不错的了.而我也终于有幸接触到了带有硬件RAID卡的服务器,所以立马倒腾了一下硬RAID的制作. 我选择了其中一台服务器做测试.这里先说一下这台服务器的硬件,当然是我们实验所需要的硬件.服务器带有4块2T的企业级硬盘和1块240G的SSD硬盘,服务器支持板载RAID,当然也有一块带有512M缓存的RAID卡. 我本想使用4块硬盘制作RAID5,这样的话,就可以有7.6T*(3/4)的实际可存储空间,但是在

一篇博客分清shell中的状态返回值-return-break-continue-exit

一篇博客分清shell中的状态返回值-return-break-continue-exit 一.break.continue.exit.return的区别和对比 条件与循环控制及程序返回值命令知识表 命令 说明 break n 如果省略n,则表示跳出整个循环,n表示跳出循环的层数 continue n 如果省略n,则表示跳出本次循环,忽略本次循环剩余代码,进入循环的下一次循环.n表示退到第n层继续循环 exit n 表示退出当前shell程序,n为上一次程序执行的状态返回值,n也可以省略,在下一

1027 制作表格

表格分 : 行   列 分三个标签: <table>(开始) <tr> <td> </td> </tr> </table>(结束) 表格宽度百分百相对浏览器边框  1-100% 单元格边距:边线对边线的距离 单元格间距:内容与边线的距离 width(宽度)="100%" border(边框)="1" cellspacing(边距)="0" cellpadding(间距)=&q