- 代码调用脚本:host_resource;sh,config.sh 拿到服务器的cpu,内存,网络,磁盘信息
以下为调用脚本内容:
host_resource;sh
#!/bin/bash
#==================================================================#
#FILE: host_resource.sh
#FUNCTION: 主机监控,获取主机CPU、内存、网络I\O、磁盘 I\O
#==================================================================#
#=========================Parameter================================#
# HOST 主机IP地址
# USER ssh访问的用户
# SSH ssh命令别名
# CPU cpu使用率
# MEMORY 内存使用率
# DISK 磁盘IO
# DEVICE 网卡设备
# NETWORK 网络IO
#==================================================================#
#加载变量
source /data/bin/config.sh
HOST=$1
#位置参数校验
[ -z $HOST ] && echo "false:parameter" && exit 1
MONITOR() {
#CPU
CPU=`$SSH $USER@$HOST 2>/dev/null vmstat | grep -v -E "^$|proc|swpd" | awk '{print 100-$15}'`
#内存
MEMORY=`$SSH $USER@$HOST 2>/dev/null free -m |grep Mem | awk '{print $2"\t"$3}'`
#磁盘IO
DISK=`$SSH $USER@$HOST 2>/dev/null iostat -d -k | grep -v -E "^$|Linux|dm|Device" | awk '{print $3"\t"$4}' | awk '{sum1+=$1;sum2+=$2} END {print sum1"\t"sum2}'`
#网络IO
DEVICE=`$SSH $USER@$HOST 2>/dev/null "cd /etc/sysconfig/network-scripts && ls | grep ifcfg | grep -v ifcfg-lo"`
NAME=${DEVICE#ifcfg-}
NETWORK=`$SSH $USER@$HOST 2>/dev/null sar -n DEV 1 1 | grep -v -E "^$|Linux|Average" | grep -E "$NAME" | awk '{print $6"\t"$7}'`
#输出系统资源信息
echo -e "true\n$CPU\n$MEMORY\n$DISK\n$NETWORK"
}
#主机网络状态检查
ping -c 1 $HOST > /dev/null 2>&1
if [ $? -eq 0 ];then
MONITOR
else
echo "false" && exit 1
fi
config.sh
#!/bin/bash
#基础环境配置文件
# SSH/SCP
SSH="ssh -A -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no"
SCP="scp -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no"
# USER shell脚本执行用户
USER=root