通过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
-
效果如图