系统信息、网络信息、系统资源检查脚本
#!/bin/bash
echo "check time: `date +%Y%m%d%H%M%S`"
function RED(){
#在日志输出
echo -e "$@"
}
function GRE(){
#在日志输出
echo -e "$@"
}
function OS_INFO(){
# 系统名
local OS_NAME=`uname -n`
# 系统版本
local OS_VERSION=`cat /etc/redhat-release || echo 获取信息失败`
# 系统类型
local OS_TYPE=`uname`
# 系统内核版本
local OS_KERNEL=`uname -r`
# 系统时间
local OS_DATE=`date +"%Y-%m-%d %H:%M:%S"`
# 系统运行时间
local OS_UPTIME=`uptime | awk -F',' '{sub(/.*up /,"",$1);print $1'} || echo 获取信息失败`
# 系统上次重启时间
local OS_LAST_REBOOT=`last reboot | head -1 | awk '{print $5,$6,$7,$8,$10}'`
# 系统上次关机时间
local OS_LAST_SHUTDOWN=`last -x | grep shutdown | head -1 | awk '{print $5,$6,$7,$8,$10}'`
#系统性能模式
local OS_TUNED=`tuned-adm active | awk -F: '{print $2}'`
RED "################################# [ 系统信息巡检区 ] ######################################"
GRE "主机名:$OS_NAME"
GRE "主机类型:$OS_TYPE"
GRE "系统版本:$OS_VERSION"
GRE "系统内核版本:$OS_KERNEL"
GRE "系统时间;$OS_DATE"
GRE "系统已运行时间:$OS_UPTIME"
GRE "系统上次重启时间:${OS_LAST_REBOOT:-获取信息失败}"
GRE "系统上次关机时间:${OS_LAST_SHUTDOWN:-获取信息失败}"
GRE "系统性能模式: ${OS_TUNED:-获取信息失败}"
}
function OS_NETWORK(){
# 主机ip相关
local IP_NAME=`ifconfig`
#网卡缓存信息
local NETWORK_CACHE=`ethtool $(ls /sys/class/net/ | grep -v "$(ls /sys/devices/virtual/net/)")`
#当前系统所有网卡
local NET_DEVICE=(`cat /proc/net/dev | awk 'NR>2 && $1 !~/lo/ {sub(/:/,"");print $1}'`)
RED "################################# [ 网络信息巡检区 ] ######################################"
GRE "主机ip信息:\n$IP_NAME"
for i in ${NET_DEVICE[@]}
do
GRE "网卡:$i 状态: $(ip link show ens33 | awk 'NR==1{print $9}') RX: $(ethtool -g ens33 | grep "RX:" | tail -1 | awk '{print $2}') TX: $(ethtool -g ens33 | grep "TX:" | tail -1 | awk '{print $2}')"
done
GRE "网络缓存信息:\n$NETWORK_CACHE"
}
function OS_RESOURCE(){
# 系统磁盘列表
local DISK_LIST=(`lsblk | egrep "^[a-z].*" | grep -v "^sr" | awk '{print $1}'`)
# 系统磁盘使用率情况
local DISK_PER=(`df -h | awk 'NR>1 && $1 !~/sr/ {gsub(/%/,"",$5);print $5}'`)
# CPU个数
local CPU_NUM=`cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l`
# CPU 核数
local CPU_CORE=`cat /proc/cpuinfo | grep cores | uniq | awk -F':' '{sub(/ /,"",$2);print $2}'`
# 内存大小
local ME_SIZE=$(free -h | egrep "Mem" |awk '{print $2}')
# SWAP大小
local ME_SWAP_SIZE=$(free -h | egrep "Swap" |awk '{print $2}')
# 当前僵尸进程数
local CPU_ZOM_PROCESSORS=$(top -d 1 -n 1 -b | awk 'NR==2{print $10}')
RED "################################# [ 系统资源巡检区 ] ######################################"
GRE "CPU个数:$CPU_NUM"
GRE "CPU核数: $CPU_CORE"
GRE "内存容量:${ME_SIZE} GB"
GRE "SWAP容量:$ME_SWAP_SIZE GB"
GRE "\n磁盘分区使用率是否正常:正常"
for i in ${DISK_LIST[@]}
do
if [[ -z "$(lsblk --nodeps -no serial /dev/$i)" ]]; then
GRE "磁盘:$i 磁盘序列号:获取信息失败"
else
GRE "磁盘:$i 磁盘序列号:$(lsblk --nodeps -no serial /dev/$i)"
fi
done
for i in ${DISK_PER[@]}
do
if [ $i -gt 80 ]; then
RED "某分区磁盘使用率为:$i% > 80% 请及时扩容"
fi
done
#GRE "$(df -Thi)"
GRE "系统当前僵尸进程数:$CPU_ZOM_PROCESSORS"
GRE "\n系统当前允许最大fd数量:$(cat /proc/sys/fs/file-nr | awk '{print $3}')"
GRE "系统当前已打开fd数量:$(cat /proc/sys/fs/file-nr | awk '{print $1}')"
GRE "系统单个进程运行打开fd数量:$(ulimit -n)"
}
OS_INFO
OS_NETWORK
OS_RESOURCE