通过Linux脚本发送服务器状态信息到钉钉消息,
主要流程
1、 钉钉添加机器人,获取webhook地址,添加关键词,就是发送给钉钉包含的词汇
2、编写shell发送脚本,Linux可以写成两个脚本这样比较方便修改,分别是发送消息postinfo.sh ,和获取信息的info.sh内容分别如下
postinfo.sh
#!/bin/bash
curl 'https://oapi.dingtalk.com/robot/send?access_token=这里根据自己的实际情况进行修改,其他不用动' \
-H 'Content-Type: application/json; charset=UTF-8' \
-d "
{\"msgtype\": \"text\",
\"text\": {
\"content\": \"
Server Info
$(bash info.sh)
\"
}
}"
info.sh
#!/bin/bash
echo ------HostName--------------
hostname
echo ---------------IP----------------
ifconfig | grep addr | grep Bcast
#centos getip
ip a | grep inet | grep brd | cut -d / -f 1
#通过curl获取出口IP
curl cip.cc | head -2
echo ---------------Date--------------
date "+%Y-%m-%d %H:%M:%S"
echo -------------Root-User-----------
cat /etc/passwd | grep :0: | cut -d : -f 1
echo -------------CPU-Info------------
cat /proc/cpuinfo | grep name | cut -d : -f 2 |uniq -c
vmstat -S m
sar -u 1 5
echo -------------Mem-Info------------
free -m
echo -------------Disk-Info-----------
df -Th /
df -Th /home
echo -------------Disk-List-----------
DiskList -l | grep "Disk /dev/sd"| awk '{print $2}'| cut -d : -f 1
echo -------------Disk-Healt----------
echo $DiskList
for i in `echo $DiskList` ; do echo $i ; eho $(smartctl -H $i | grep Status);done
3、本地测试脚本,根据实际情况进行修改,bash info.sh
4、确定获取信息脚本没有问题后,测试发送到钉钉的脚本,bash postinf.sh
5、添加计划任务 crontab -e
每天早上8点发送一次结果
* 8 * * * bash /目录/postinfo.sh
效果如图