这个脚本,执行之后报错
#!/bin/bash
#监控cpu、磁盘、内存使用率
logFile=/tmp/jiankong/jiankong.log
now_time=date '+%F %T'
#统计内存使用率
cpuUsage=top -b -n5 | fgrep "Cpu(s)" | tail -1 | awk -F 'id,' '{split($1, vs, ","); v=vs[length(vs)];sub(/\s+/,"",v);sub(/\s+/,"",v);printf "%d",100-v;}'
#统计内存使用率
mem_used_persent=free -m | awk -F '[ :]+' 'NR==2{printf "%d", ($3)/$2*100}'
#获取磁盘使用率
#data_name="/dev/vda1"
#diskUsage=df -h | grep $data_name | awk -F '[ %]+' '{print $5}'
function check{
echo -e "CPU使用率:${cpuUsage}%\n内存使用率:${mem_used_persent}%"
if [[ "$cpuUsage" > 80 ]] || [[ "$mem_used_persent" > 80 ]];then
echo "报警时间:${now_time}" > $logFile
echo -e "CPU使用率:${cpuUsage}% --> 内存使用率:${mem_used_persent}%" >> $logFile
fi
}
#!/bin/bash
# 监控cpu、磁盘、内存使用率
logFile=/tmp/jiankong/jiankong.log
now_time=$(date '+%F %T')
# 统计内存使用率
cpuUsage=$(top -b -n5 | fgrep "Cpu(s)" | tail -1 | awk -F 'id,' '{split($1, vs, ","); v=vs[length(vs)];sub(/\s+/,"",v);sub(/\s+/,"",v);printf "%d",100-v;}')
# 统计内存使用率
mem_used_persent=$(free -m | awk -F '[ :]+' 'NR==2{printf "%d", ($3)/$2*100}')
# 获取磁盘使用率
#data_name="/dev/vda1"
#diskUsage=df -h | grep $data_name | awk -F '[ %]+' '{print $5}'
function check {
echo -e "CPU使用率:${cpuUsage}%\n内存使用率:${mem_used_persent}%"
if [[ "$cpuUsage" > 80 ]] || [[ "$mem_used_persent" > 80 ]];then
echo "报警时间:${now_time}" > $logFile
echo -e "CPU使用率:${cpuUsage}% --> 内存使用率:${mem_used_persent}%" >> $logFile
fi
}
试下,望采纳!
#!/bin/bash
# 监控 CPU、磁盘、内存使用率
logFile="/tmp/jiankong/jiankong.log"
now_time=$(date '+%F %T')
# 统计 CPU 使用率
cpuUsage=$(top -b -n 1 | fgrep "Cpu(s)" | tail -1 | awk -F 'id,' '{split($1, vs, ","); v=vs[length(vs)];sub(/\s+/,"",v);sub(/\s+/,"",v);printf "%d",100-v;}')
# 统计内存使用率
mem_used_persent=$(free -m | awk -F '[ :]+' 'NR==2{printf "%d", ($3)/$2*100}')
# 获取磁盘使用率
# data_name="/dev/vda1"
# diskUsage=$(df -h | grep "$data_name" | awk -F '[ %]+' '{print $5}')
function check() {
echo -e "CPU使用率:${cpuUsage}%\n内存使用率:${mem_used_persent}%"
if [[ "$cpuUsage" > 80 ]] || [[ "$mem_used_persent" > 80 ]];then
echo "报警时间:${now_time}" > "$logFile"
echo -e "CPU使用率:${cpuUsage}% --> 内存使用率:${mem_used_persent}%" >> "$logFile"
fi
}
check
在定义函数时应该在函数名称后面加上括号,即应该将 function check 改为 function check()。
在使用 echo 命令输出信息时,应该使用双引号而不是单引号,否则变量名称会被解释成字符串。