shell编写linux监控脚本
脚本要求如下:
编写脚本监控本机各项数据指标:CPU负载、网卡流量、内存剩余容量、磁盘剩余容量、计算机账户数量、当前登录账户数量、计算机当前开启的进程数量、本机已安装的软件包数量
#!/bin/bash
while :
do
#清屏
clear
#使用无选项 uptime 命令显示信息依次为:系统当前时间、系统已经运行了多长时间、目前有多少用户登录、系统在过去的 1 分钟、5 分钟和 15 分钟内的平均负载(CPU负载)情况。
uptime | awk '{print "cpu的15分钟平均负载是"$NF}'
#使用ifconfig命令查看网卡信息,其中查询网卡流量包括接收数据包(RX packets )与 发送数据包(TX packets)信息。
ifconfig ens160 |grep "RX packets"|awk '{print "接收数据包的流量"$5}'
ifconfig ens160 |grep "TX pack"|awk '{print "发送数据包的流量是"$5}'
#使用free命令查看内存信息,其中“Mem”所对应的“free”字段表示剩余内存容量
free -h | awk '/^Mem:/{print "剩余内存容量是"$4}'
#使用df命令查看磁盘空间,其中“/“所对应的“Avail”字段表示根分区的剩余容量。
df -h | awk '/\/$/{print "根分区剩余容量是"$4}'
#/etc/passwd是存储本地用户信息的文件,该文件中每个用户信息占一行。 查看计算机账户数量只需要统计该文件有多少行即可。
awk 'END{print "用户总数是"NR"个"}' /etc/passwd
#who命令用来显示当前登录系统的用户信息, 一个用户信息占一行,查看登录账户数量只需要统计who命令输出了多少行即可。
who | awk 'END{print "登录用户数量是"NR"个"}'
#使用ps -aux命令读取系统所有进程信息,一个进程信息占一行,查看计算机当前开启的进程数量只需要统计有多少行进程信息即可(wc -l 统计结果需要减去标题行)。
ps -aux | awk 'END{print "开启进程数量是"NR-1"个"}'
#rpm -a命令用来列出所有已经安装的rpm软件包,每行显示一个安装包信息,查看已安装软件包数量只需统计一共有多少行安装包信息即可。
rpm -qa | awk 'END{print "安装的软件包数量是"NR"个"}'
sleep 3
done