使用shell脚本进行服务器系统监控——系统负载监控(1)

释放双眼,带上耳机,听听看~!

#!/bin/ksh

SECS=300   # Defines the number of seconds for each sample
INTERVAL=2    # Defines the total number of sampling intervals
STATCOUNT=0   # Initialize a loop counter to 0, zero
OS=$(uname)   # Defines the UNIX flavor

###################################################
##### SETUP THE ENVIRONMENT FOR EACH OS HERE ######
###################################################

# These "F-numbers" point to the correct field in the
# command output for each UNIX flavor.

case $OS in
AIX|HP-UX)   SWITCH='-t'
F1=3
F2=4
F3=5
F4=6
echo "/nThe Operating System is $OS/n"
;;
Linux|SunOS) SWITCH='-c'
F1=1
F2=2
F3=3
F4=4
echo "/nThe Operating System is $OS/n"
;;

*) echo "/nERROR: $OS is not a supported operating system/n"
echo "/n/t…EXITING…/n"
exit 1
;;
esac

###################################################
######## BEGIN GATHERING STATISTICS HERE ##########
###################################################

echo "Gathering CPU Statistics using vmstat…/n"
echo "There are $INTERVAL sampling periods with"
echo "each interval lasting $SECS seconds"
echo "/n…Please wait while gathering statistics…/n"

# Use "iostat" to monitor the CPU utilization and
# remove all lines that contain alphabetic characters
# and blank spaces. Then use the previously defined
# field numbers, for example F1=4,to point directly
# to the 4th position, for this example. The syntax
# for this techniques is ==>  $'$F1'.

iostat $SWITCH $SECS $INTERVAL | egrep -v '[a-zA-Z]|^$' /
| awk '{print $'$F1', $'$F2', $'$F3', $'$F4'}' /
| while read FIRST SECOND THIRD FOURTH
do
if ((STATCOUNT == 1)) # Loop counter to get the second set
then                  # of data produces by "iostat"

      case $OS in # Show the results based on the UNIX flavor
AIX)
echo "/nUser part is ${FIRST}%"
echo "System part is ${SECOND}%"
echo "Idle part is ${THIRD}%"
echo "I/O wait state is ${FOURTH}%/n"
;;
HP-UX|Linux)
echo "/nUser part is ${FIRST}%"
echo "Nice part is ${SECOND}%"
echo "System part is ${THIRD}%"
echo "Idle time is ${FOURTH}%/n"
;;
SunOS)
echo "/nUser part is ${FIRST}%"
echo "System part is ${SECOND}%"
echo "I/O Wait is ${THIRD}%"
echo "Idle time is ${FOURTH}%/n"
;;
esac

  fi
((STATCOUNT = STATCOUNT + 1)) # Increment the loop counter
done

给TA打赏
共{{data.count}}人
人已打赏
安全技术安全运维

Windows服务器如何发现被黑

2018-5-20 12:24:31

安全技术

详解Node.js API系列 Crypto加密模块(1)

2021-12-21 16:36:11

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索