Shell 脚本进阶2


 1.查询系统基础情况脚本

#!/bin/bash
# 系统状态查询脚本
# 输出系统基本信息
#
# 系统版本 
SYSTEM_VERSION=`cat /etc/redhat-release`
# 主机名
HOSTNAME=`hostname`
# 网卡名称
DEV="ens32"
# IP地址
IP_ADDR=`ifconfig $DEV | grep -v inet6 | grep inet | awk '{print $2}'`
# MAC地址
MAC_ADDR=`ifconfig $DEV  | awk '/ether/{print $2}'`
# 内核版本
KERNEL_VERSION=`uname -a | awk '{print $3}'`
# CPU版本
CPU_VERSION=`cat /proc/cpuinfo | grep -n '^model name' | awk -F":" '{print $3 }'|sed 's/^ //g'`
# 当前时间
DATE=`date`
# 启动时间
DATE_START=`date -d "$(awk -F. '{print $1}' /proc/uptime) second ago" +"%Y-%m-%d %H:%M:%S"`
#
echo -e "\n+---------  $DATE  --------+\n"
echo -e "主机名:\n$HOSTNAME\n"
echo -e "系统版本:\n$SYSTEM_VERSION\n"
echo -e "内核版本:\n$KERNEL_VERSION\n"
echo -e "CPU版本:\n$CPU_VERSION\n"
echo -e "系统IP:\n$DEV $IP_ADDR\n"
echo -e "系统MAC:\n$DEV $MAC_ADDR\n"
echo -e "启动时间:\n$DATE_START\n"
#---------------------------
# 系统负载
# uptime
#---------------------------
CPU_NUM=`cat /proc/cpuinfo | grep processor | awk -F":" '{print $2}' | wc -l`
Load=`uptime | awk -F"average:" '{print $2}' | awk -F"," '{print "<__  系统负载  __>  -->  ""CPU数量:'"$CPU_NUM"'""\t1分钟:"$1"\t5分钟:"$2"\t15分钟:"$3}'`
echo -e "\n$Load\n"
#---------------------------
# CPU状态
# vmstat
#---------------------------
CPU_CHECK=`vmstat | awk '{print NR $0}' | awk '/^3/{print "<__  CPU状态   __>  -->  ""CPU使用:"$14"%\t""CPU空闲:"$16"%"}'`
echo -e "$CPU_CHECK\n"
#---------------------------
# 内存状态
# free
#---------------------------
MEMORY=`free -mh | awk ' /^Mem/{print "<__  内存状态  __>  -->  ""内存总量:"$2"\t已用内存:"$3"\t剩余内存:"$4"\t可用内存:"$7}'`
echo -e "$MEMORY\n"
#--------------------------
# 磁盘使用
# df
#--------------------------
DISK=`df -h | grep -n '/$' | awk '{print "<__  磁盘使用  __>  -->  ""磁盘容量:"$2"\t已用容量:"$3"\t可用容量:"$4}'`
echo -e "$DISK\n"
#---------------------------
# 进程统计
# top
#---------------------------
PROCESS=`top -bn1 | awk '/Tasks:/{print $0}' | awk '{print "<__  进程统计  __>  -->  ""进程总数:"$2"\t运行进程:"$4"\t休眠进程:"$6"\t停止进程:"$8"\t僵尸进程:"$10}'`
echo -e "$PROCESS\n"
#---------------------------
# 磁盘IO使用情况
# sar
#---------------------------
IO=`sar -b | grep -n '^[^0-9]' | awk '{print NR $0}'| awk '/^2/{print"<__  磁盘读写  __>  -->  ""读/秒:"$5" bytes""\t写/秒:"$6" bytes"}'`
echo -e "$IO\n"
#---------------------------
# 网卡流量使用情况
# sar
#---------------------------
NETWORK=`sar -n DEV | grep $DEV | grep -n '^[^0-9]'|  awk '{print "<__  网卡流量  __>  -->  ""网卡名:"$2"\t收包/秒:"$3"\t发包/秒:"$4"\t下载/秒:"$5" Bytes""   上传/秒:"$6" Bytes"}'`
echo -e "$NETWORK\n"
system_check.sh
[root@localhost shell]# sh system_check.sh 

+---------  2018年 04月 27日 星期五 11:00:55 CST  --------+

主机名:
localhost.localdomain

系统版本:
CentOS Linux release 7.4.1708 (Core) 

内核版本:
3.10.0-693.el7.x86_64

CPU版本:
Intel(R) Xeon(R) CPU E5-2603 v4 @ 1.70GHz
Intel(R) Xeon(R) CPU E5-2603 v4 @ 1.70GHz

系统IP:
ens32 192.168.1.159

系统MAC:
ens32 00:0c:29:b0:e8:12

启动时间:
2018-04-19 09:12:48


<__  系统负载  __>  -->  CPU数量:2    1分钟: 0.12    5分钟: 0.04    15分钟: 0.05

<__  CPU状态   __>  -->  CPU使用:0%    CPU空闲:100%

<__  内存状态  __>  -->  内存总量:3.7G    已用内存:181M    剩余内存:2.8G    可用内存:3.2G

<__  磁盘使用  __>  -->  磁盘容量:50G    已用容量:1.3G    可用容量:49G

<__  进程统计  __>  -->  进程总数:116    运行进程:1    休眠进程:115    停止进程:0    僵尸进程:0

<__  磁盘读写  __>  -->  读/秒:0.00 bytes    写/秒:0.93 bytes

<__  网卡流量  __>  -->  网卡名:ens32    收包/秒:10.74    发包/秒:1.60    下载/秒:0.65 Bytes   上传/秒:0.10 Bytes
输出案例

猜你喜欢

转载自www.cnblogs.com/xiangsikai/p/8929807.html
今日推荐