废话不多说,先上脚本monitor.sh
rpm -qa dstat||yum install dstat -y &&echo "系统已安装dstat!"
rpm -qa nethogs||yum install nethogs -y &&echo "系统已安装nethogs!"
echo -e "\033[33m 请输入监控的项目,只需输入序号 \033[0m"
while true ;do
clear
cat <<eof
----------------------------------------------------
0. 显示硬件信息
1. 显示最耗CPU的进程
2. 显示最高磁盘IO的进程
3. 显示最耗内存的进程
4. 监控磁盘读写
5. 监控网卡的流量
6. 监控进程的网络流量
7. 监控内存状态
8. 监控信息输出到文件
9. 显示所有
10. 退出
----------------------------------------------------
eof
read -p "" choice
if [[ $choice -eq 10 ]]; then
exit
elif [[ $choice -eq 0 ]]; then
lshw -class processor,memory,disk,display,board,network -short|grep -v "empty"
fi
read -p "请输入监控的间隔(秒)" s
read -p "显示多少行?" r
echo -e "\033[31m 你选择 第$choice项,每${s:=2}秒监控一次,共显示${r:=10}行 \033[0m"
case $choice in
1)
dstat -t --top-cpu-adv ${s:=2} ${r:=10}
;;
2)
dstat -t --top-bio-adv ${s:=2} ${r:=10}
;;
3)
dstat -t --top-mem ${s:=2} ${r:=10}
;;
4)
dstat -t -dD sda,total ${s:=2} ${r:=10}
;;
5)
#dstat -t -n -N ens33,total ${s:=2} ${r:=10}
dstat -t -n ${s:=2} ${r:=10}
;;
6)
#nethogs -d 3 -c 10 -v 3|tee -a ./net.txt
nethogs
;;
7)
dstat -t -m ${s:=2} ${r:=10}
;;
8)
dstat --output ./dstat.csv
;;
9)
dstat ${s:=2} ${r:=10}
;;
*)
;;
esac
read -p "按任意键继续"
done
执行sh monitor.sh