From 074b44d224b98167ff8194ae7604622410b0de60 Mon Sep 17 00:00:00 2001 From: newrain Date: Thu, 17 Jun 2021 16:27:54 +0800 Subject: [PATCH] =?UTF-8?q?bug=20=E4=BF=AE=E5=A4=8D=20=E4=BF=AE=E5=A4=8Dbu?= =?UTF-8?q?g=E5=9C=A8=E8=84=9A=E6=9C=AC=E4=B8=AD=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zabbix_agentd.d/script/osMonitor.sh | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/zabbix_agentd.d/script/osMonitor.sh b/zabbix_agentd.d/script/osMonitor.sh index 779b68d..dc5b913 100644 --- a/zabbix_agentd.d/script/osMonitor.sh +++ b/zabbix_agentd.d/script/osMonitor.sh @@ -4,6 +4,7 @@ # build 2021-06-16 #1、磁盘根分区剩余百分比 #返回数值,并添加触发器报警 +#bug1: lsblk 收集信息问题 function disk() { local _part _disk _part=$(lsblk -b | grep "centos-root" | awk '{print $(NF-3)}' | awk -F'G' '{print $1}') @@ -25,31 +26,35 @@ function swap() { } #4、cpu 1、5、15分钟负载 #返回数值或其他类型 +#bug2: 变量冲突 uptime function cpuLoad() { case $1 in 1) - uptime | awk '{print $(NF-2)}' | awk -F',' '{print $1}' + /usr/bin/uptime | awk '{print $(NF-2)}' | awk -F',' '{print $1}' ;; 5) - uptime | awk '{print $(NF-1)}' | awk -F',' '{print $1}' + /usr/bin/uptime | awk '{print $(NF-1)}' | awk -F',' '{print $1}' ;; 15) - uptime | awk '{print $(NF)}' | awk -F',' '{print $1}' + /usr/bin/uptime | awk '{print $(NF)}' | awk -F',' '{print $1}' ;; esac } #5、/etc/passwd /etc/shadow /etc/sodoers 等文件修改情况 #返回任意类型,并添加触发器报警 +#bug3: 没有sudo权限 function fileMD5() { - [ ! -f /tmp/md5.hash ] && md5sum /etc/passwd /etc/shadow /etc/sudoers >/tmp/md5sum && echo "数据收集中" - md5sum -c /tmp/md5.hash | grep -E "FAILED|失败" + [ ! -f /tmp/md5.hash ] && sudo md5sum /etc/passwd /etc/shadow /etc/sudoers >/tmp/md5.hash && echo "数据收集中" + sudo md5sum -c /tmp/md5.hash | grep -E "FAILED|失败" } #6、系统启动时间 #返回任意类型 +#bug4: /proc/uptime 时间逻辑错了,cpu空闲率 = 空闲时间/(启动时间xcpu核心数) function uptime() { - local _uptime _idletime + local _uptime _idletime _uptime=$(cat /proc/uptime | awk '{print ($1/60)}') # 单位为分钟 _idletime=$(cat /proc/uptime | awk '{print ($2/60)}') # 系统空闲时间 + _cpus=$(cat /proc/cpuinfo |grep processor |wc -l) # cpu核心数 case $1 in upTime) echo $_uptime @@ -58,7 +63,7 @@ function uptime() { echo $_idletime ;; idle) - echo "scale=2;a=${_idletime}/${_uptime};if (length(a)==scale(a)) print 0;print a " | bc + echo "scale=2;a=${_idletime}/(${_uptime}*${_cpus});if (length(a)==scale(a)) print 0;print a " | bc ;; esac }