shell-脚本_系统监测
系统检测脚本源码:
#!/bin/bash # 界面输出区 optimize() { echo " ----系统优化选择项目---- 1.网络信息获取 2.CPU信息获取 3.内存信息获取 4.系统基本信息 5.网络测试 0.退出监测 " } # 函数命令区-order ip_get(){ echo "--网卡列表--" cat /proc/net/dev | sed -n '3,$p' | awk -F ':' {'print $1'} |sed s/[[:space:]]//g|grep -v lo echo "------------" read -ep "请选择您想要获取IP的网卡名称:" wangka zw=`ifconfig |grep -n1 $wangka |grep inet|awk '{print $5}'` ip=`ifconfig |grep -n1 $wangka |grep inet|awk '{print $3}'` wg=`ifconfig |grep -n1 $wangka |grep inet|awk '{print $7}'` echo "网卡 $wangka IP为: $ip " echo "网卡 $wangka 网关为: $wg " echo "网卡 $wangka 子网掩码为: $zw " } # cpu信息获取 cpu_get(){ echo " ----cpu查询内容---- 1.cpu的数量 2.cpu的空闲值 3.cpu的核心数 4.cpu的型号 0.返回上一层 e.直接退出监测 " while : do read -ep "输入您的选择项:" cp case $cp in 1) cpu_shu=`cat /proc/stat | grep cpu[0-9]|wc -l` echo "CPU的数量为:$cpu_shu 个" ;; 2) cpu_kong=`vmstat |tail -n1|awk '{print $15}'` echo "CPU空闲率为:$cpu_kong %" ;; 3) cpu_he=`cat /proc/cpuinfo |grep "cores"|head -n1|awk -F ': ' '{print $2}'` echo "CPU核心数:cpu_he 个" ;; 4) cpu_xing=`grep "model name" /proc/cpuinfo|sort|uniq|awk -F: '{print $2}'|sed s/[[:space:]]//g` echo "CPU的型号:$cpu_xing" ;; 0) break ;; e) exit ;; *) echo "选项输出有误,从新输入" esac done } # 内存信息获取 mem_get(){ echo " --- 内存信息选项--- 1.系统总物理内存 2.系统总交换内存 3.系统以使用内存 4.系统剩余内存 0.返回上一级 e.直接退出监测 " while : do read -ep "输入您的选择项:" cp case $cp in 1) free_wu=`free -h|grep Mem|awk {'print $2'}` echo "系统总物理内存:$free_wu" ;; 2) free_jiao=`free -h|grep Swap|awk {'print $2'}` echo "系统总交换内存:$free_jiao" ;; 3) free_yong=`free -m|grep Mem|awk {'print $3'}` echo "系统以使用内存:$free_yong M" ;; 4) free_yu=`free -m|grep Mem|awk {'print $4'}` echo "系统剩余内存:$free_yu M" ;; 0) break ;; e) exit ;; *) echo "选项输出有误,从新输入" esac done } #系统基本信息 centos_get(){ echo " ---系统信息选项--- 1.系统类型 2.系统版本 3.系统内核 4.本机名称 5.当前时间 6.运行时长 7.启动时间 0.返回上一级 e.直接退出监测 " while : do read -ep "输入您的选择项:" cp case $cp in 1) os_lei=`uname` echo "系统类型:$os_lei" ;; 2) os_ban=`cat /etc/redhat-release` echo "系统版本:$os_ban" ;; 3) os_he=`uname -a|awk '{print $3}'` echo "系统内核:$os_he" ;; 4) host=`hostname` echo "本机名称:$host" ;; 5) date_dang=`date +%F_%T` echo "系统当前时间:$date_dang" ;; 6) date_yun=`uptime |awk '{print $3}'|awk -F, '{print $1}'` echo "系统运行时长:$date_yun" ;; 7) date_xi=`who -b|awk '{print $2,$3}'` echo "系统启动时间:$date_xi" ;; 8) who_i=`who |wc -l` echo "系统登陆用户数:$who_i 个 " ;; 0) break ;; e) exit ;; *) echo "选项输出有误,从新输入" esac done } #网络 wang_get(){ curl -I http://www.baidu.com &>/dev/null # 测试 if [ $? -eq 0 ];then echo " 访问外网:成功" else echo " 访问外网:失败" fi } # 函数执行区-execute while : do optimize read -ep "输入需要监控查看的选项:" kong case $kong in 1) #IP获取 ip_get ;; 2) #CPU信息获取 cpu_get ;; 3) #内存信息获取 mem_get ;; 4) #系统基本信息 centos_get ;; 5) #网络测试 wang_get ;; 0) exit 0 ;; *) echo "选项输出有误,从新输入" esac done
The good life should be full of expectation, surprise and gratitude