Linux中检查脚本

系统信息、网络信息、系统资源检查脚本

#!/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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

睡不醒的猪儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值