#!/bin/bash # [ $# -lt 1 ] && echo '可支持的选项:-avhcplrmtnL' && exit 0 #依赖cmd rpm -q pstree &> /dev/null || yum install -y pstree &> /dev/null #版本 k_version="`grep -oP '(?<=release )\d' /etc/centos-release`" #本地地址 host_ip="`hostname -I|awk '{print $1}'`" #cpu核数 cpu_num="`lscpu | awk '/^CPU\(s\):/{print $2}'` C" #cpu使用率 cpu_percent="`echo "100-$(top -b -n1 | grep -oP '\d+\.\d+(?= id)')"|bc` %" #cpu平均负载 cpu_load="`uptime|awk '{print $NF}'`" #硬盘容量/剩余量 disk_root="`df -m|awk '$NF=="/"{print $2}'` / `df -m|awk '$NF=="/"{print $4}'` Mb" disk_warn="`df -m|sed 1d|awk '{split($5,per,"%");if(per[1]>85){if($4<5000) print $4}}'` Mb" #内存总量/剩余量 mem_info="`free -m|awk '/Mem:/{print $2}'` / `free -m|awk '/Mem:/{print $6+$5+$4}'` Mb" #当前线程数 thread_now=`pstree -p|wc -l` #当前连接数 conn_now=`ss -tn state established|wc -l` #当前占用端口列表 port_list="`ss -tnl|sed 1d|awk 'split($4,port,":"){print port[2],port[4]}'|sed 's/ //g'|sort -un|sed ':t;N;s/\n/,/;b t'`" while getopts :avscplrwmtnL opt do case $opt in a) echo -e "版本:$k_version\n主机ip:$host_ip\n核数:$cpu_num\ncpu利用率:$cpu_percent\ncpu负载:$cpu_load\n根目录:$disk_root\n内存:$mem_info\n线程数:$thread_now\n连接数:$conn_now\n已占用端口:$port_list" | column -s: -t ;; v) echo system version: $k_version |column -s: -t ;; s) echo system address: $host_ip |column -s: -t ;; c) echo system cpu_num: $cpu_num |column -s: -t ;; p) echo cpuuse_percent: $cpu_percent |column -s: -t ;; l) echo cpu_load_value: $cpu_load |column -s: -t ;; r) echo diskfree_total: $disk_root |column -s: -t ;; m) echo mem_free_total: $mem_info |column -s: -t ;; t) echo sys_prom_total: $thread_now |column -s: -t ;; n) echo sys_connection: $conn_now |column -s: -t ;; L) echo sys_open_ports: $port_list |column -s: -t ;; ?) echo "可支持的选项:-vhcplrmtnL"; exit 6 esac done exit 0