centos7 写一个shell脚本,将当前主机IP(Shell变量配置)、CPU使用率(纯数字)、内存总量和使用量(单位GB)、硬盘总量和使用量(单位GB)使用curl json方式调用http://192.168.220.1:18181/jeecg-boot/luodiye/sendMsg(Shell变量配置),脚本每隔N秒钟执行一次(Shell变量配置),curl 超时时间为5秒,调用失败输出当前时间和错误信息到当前目录monitor_error.log日志文件(没有则创建),脚本循环调用
时间: 2023-02-09 18:50:06 浏览: 170
用于自动监控磁盘使用情况的 Shell 脚本.doc
```bash
#!/bin/bash
# 定义变量
ip=$(ip addr | grep 'state UP' -A2 | tail -n1 | awk '{print $2}' | cut -f1 -d'/')
cpu=$(top -bn1 | grep "Cpu(s)" | awk '{print $2}' | cut -f1 -d"%")
mem_total=$(free -g | grep Mem | awk '{print $2}')
mem_used=$(free -g | grep Mem | awk '{print $3}')
disk_total=$(df -h | grep /dev/sda1 | awk '{print $2}')
disk_used=$(df -h | grep /dev/sda1 | awk '{print $3}')
url="http://192.168.220.1:18181/jeecg-boot/luodiye/sendMsg"
interval=60 # 执行间隔时间
timeout=5 # curl超时时间
while true
do
# 构造json数据
json_data="{\"ip\":\"$ip\",\"cpu\":\"$cpu\",\"mem_total\":\"$mem_total\",\"mem_used\":\"$mem_used\",\"disk_total\":\"$disk_total\",\"disk_used\":\"$disk_used\"}"
# 发送请求
result=$(curl -s -m $timeout -H "Content-Type:application/json" -d "$json_data" $url)
# 判断结果
if [ $? -ne 0 ]; then
# 记录错误日志
echo "[$(date)] curl error: $result" >> monitor_error.log
fi
# 等待
sleep $interval
done
```
这是一个示例脚本, 用于收集当前主机的IP、CPU使用率、内存总量和使用量、硬盘总量和使用量, 然后使用curl请求发送到指定的URL中, 并且每隔N秒钟(60s)执行一次,如果curl失败则记录到当前目录的monitor_error.log文件中.
请注意:
- 脚本中的IP地址、URL、间隔时间、超时时间等参数需要根据实际情况进行修改.
- 脚本中的硬盘检测是基于/dev/s
阅读全文