【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小时内删除。
发表评论