【shell】Linux系统信息收集1.代码
[root@tong ~]# cat host_state2.sh
#!/bin/bash
trap " " HUP INT OUIT TSIP
HOSTNAME=`hostname -s`
MEMORY=`free | grep Mem | awk '{print $2}'`
CPUS=`cat /proc/cpuinfo | grep processor | wc -l | awk '{print $1}'`
CPU_MHZ=`cat /proc/cpuinfo | grep MHz | tail -n1 | awk '{print $4}'`
CPU_TYPE=`cat /proc/cpuinfo | grep vendor_id | tail -n 1 | awk '{print $3}'`
CPU_TYPE2=`uname -m`
OS_NAME=`uname -s`
OS_KERNEL=`uname -r`
UPTIME=`uptime`
PROC_COUNT=`ps -ef | wc -l`
clear
while :
do
cat <<-EOF
****************************************
*  1.主机信息                        *
*  2.磁盘使⽤情况                    *
*  3.内存使⽤情况                    *
*  4.⽹络连接情况                    *
*  5.⽹络监听状况                    *
*  6.内存占⽤TOP10                    *
*  7.CPU占⽤TOP10                    *
*  8.最近2⼩时内⽹络流量统计          *
*  9.最近2⼩时CPU使⽤统计            *
*  10.最近1⼩时磁盘IO统计            *
*  11.最近1⼩时平均负载统计          *
*  12.最近1⼩时内存和交换空间统计    *
*  q.退出          *
****************************************
shell界面
EOF
read -p "please input number:" number
echo "time: `date +'%Y-%m-%d %H:%M:%S'`"
case "$number" in
1) echo "
主机名 : $HOSTNAME
内存⼤⼩ : $MEMORY
CPU核数 : $CPUS
CPU类型 : $CPU_TYPE $CPU_TYPE2 $CPU_MHZ MHz
操作系统 : $OS_NAME
内核版本 : $OS_KERNEL
进程总数 : $PROC_COUNT
启动时间及负载 : $UPTIME  "
;;
2)  df -h ;;
3)  free -m ;;
4)  netstat -n |grep -v '127.0.0.1'| awk '/^tcp/ {CON[$NF]++} END {for(a in CON) print a, CON[i]}'  ;;
5)  netstat -tnpl | awk 'NR>2 {printf "%-15s %-15s \n",$4,$7}' ;;
6)  ps -eo rss,pmem,pcpu,vsize,args | sort -k 1 -r -n | head -n 10;;
7)  ps -eo rss,pmem,pcpu,vsize,args | sort -k 3 -r -n | head -n 10;;
8)  sar -n DEV -s `date -d "2 hour ago" +%H:%M:%S`;;
9)  sar -u -s `date -d "2 hour ago" +%H:%M:%S` ;;
10) sar -b -s `date -d "1 hour ago" +%H:%M:%S`;;
11) sar -q -s `date -d "1 hour ago" +%H:%M:%S`;;
12) sar -r -s `date -d "1 hour ago" +%H:%M:%S`;;
q)  exit
;;
*)  echo "error" ;;
esac
done
执⾏结果:
[root@tong ~]# bash host_state2.sh
****************************************
*  1.主机信息                        *
*  2.磁盘使⽤情况                    *
*  3.内存使⽤情况                    *
*  4.⽹络连接情况                    *
*  5.⽹络监听状况                    *
*  6.内存占⽤TOP10                    *
*  7.CPU占⽤TOP10                    *
*  8.最近2⼩时内⽹络流量统计          *
*  9.最近2⼩时CPU使⽤统计            *
*  10.最近1⼩时磁盘IO统计            *
*  11.最近1⼩时平均负载统计          *
*  12.最近1⼩时内存和交换空间统计    *
*  q.退出          *
****************************************
please input number:
2.总结:
所⽤命令:
free :可查看
df :⽤于显⽰⽬前在Linux系统上的⽂件系统的磁盘使⽤情况统计常⽤参数:-h, --human-readable 使⽤⼈类可读的格式
-t, --type=TYPE 限制列出⽂件系统的 TYPE
netstat :⽤于显⽰⽹络状态
参数:
-a,–all 显⽰所有连线中的Socket
-i,–interfaces 显⽰⽹络界⾯信息表单
-n,–numeric 直接使⽤IP地址,⽽不通过域名服务器
-t,–tcp 显⽰TCP传输协议的连线状况。
–u,–udp 显⽰UDP传输协议的连线状况
ps :
sar[System Activity Reporter(系统活动情况报告)]:可点击
sar -u : 默认情况下显⽰的cpu使⽤率等信息就是sar -u;
[root@tong ~]# sar -u
Linux 3.10.0-693.2.2.el7.x86_64 (tong)  04/09/2019  _x86_64_ (1 CPU) [root@tong ~]# sar 1
Linux 3.10.0-693.2.2.el7.x86_64 (tong)  04/09/2019  _x86_64_ (1 CPU)
12:07:57 AM    CPU    %user    %nice  %system  %iowait    %steal    %idle 12:07:58 AM    all    46.00      0.00    54.00      0.00      0.00      0.00
12:07:59 AM    all    45.54      0.00    54.46      0.00      0.00      0.00
12:08:00 AM    all    46.00      0.00    54.00      0.00      0.00      0.00
sar -q: 查看平均负载
[root@tong ~]# sar -q 1 10
Linux 3.10.0-693.2.2.el7.x86_64 (tong)  04/09/2019  _x86_64_ (1 CPU)
12:09:54 AM  runq-sz  plist-sz  ldavg-1  ldavg-5  ldavg-15  blocked
12:09:55 AM        3      149      2.40      2.47      2.15        0
12:09:56 AM        3      149      2.40      2.47      2.15        0
12:09:57 AM        3      149      2.37      2.47      2.15        0
12:09:58 AM        4      149      2.37      2.47      2.15        0
12:09:59 AM        3      149      2.37      2.47      2.15        0
12:10:00 AM        2      149      2.37      2.47      2.15        0
12:10:01 AM        3      149      2.37      2.47      2.15        0
12:10:02 AM        2      149      2.34      2.46      2.15        0
12:10:03 AM        3      149      2.34      2.46      2.15        0
12:10:04 AM        3      149      2.34      2.46      2.15        0
Average:            3      149      2.37      2.47      2.15        0
-r 查看内存使⽤状况
[root@tong ~]# sar -r 1 3  //连续抽样3次
Linux 3.10.0-693.2.2.el7.x86_64 (tong)  04/09/2019  _x86_64_ (1 CPU)
12:11:01 AM kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit  %commit  kbacti
ve  kbinact  kbdirty 12:11:02 AM    83560  1799936    95.56    104724  1122460  1020692    54.19    877812    812920      6980
12:11:03 AM    83560  1799936    95.56    104724  1122452  1020000    54.15    877800    812920      7172
12:11:04 AM    83560  1799936    95.56    104724  1122448  1020692    54.19    877796    812920      7368 Average:        83560  1799936    95.56    104724  1122453  1020461    54.18    877803    812920      7173
[root@tong ~]#

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。