#!/bin/bash
#author Mr.Wu
#系统运行巡检脚本
#2022-12-19 20:15:14
#######################################################
#定义函数
cutip(){
#ip=$(ifconfig ens33 | awk '/netmask/{print $2}')
ip="$(ip a | awk '/scope global/{print $2}' | cut -d "/" -f 1 | sed -n "1p")"
echo -e "\033[45;37;1m 本地计算机IP地址为:$ip \033[0m"
}
mem_used(){
free_mem=$(free -m | awk '/Mem/{print $4}')
total_mem=$(free -m | awk '/Mem/{print $2}')
used_mem=$(echo "scale=4;(1-$free_mem/$total_mem)*100" | bc)
echo -e "\033[44;37;1m 本机内存使用率为:$(printf "%.2f%%" ${used_mem})\033[0m"
}
cpuinf(){
cpuin="$(cat /proc/cpuinfo | sed -n "2p;3p;5p;8p;9p;13p;18p;23p;24p")"
echo -e "\033[36;1m 本机CPU信息为:\n$cpuin \033[0m"
}
hostnam(){
name=$(hostname)
echo -e "\033[45;37;1m 本地计算机主机名为:$name \033[0m"
}
sda_used(){
use_mem=$(df -h | grep "/$" | awk '{print $5}')
echo -e "\033[44;37;1m 本机磁盘使用率为:$use_mem \033[0m"
}
io_info(){
io_num=$(ps -ef | wc -l)
echo -e "\033[44;37;1m 本地进程个数为:$io_num \033[0m"
}
delimiter(){
echo -e "\033[32m※※※※※※※※※※※※※※※※※※※※※※※※※※\033[0m"
}
memu(){
delimiter
echo -e "\033[32m
1 显示本地计算机IP地址
2 显示CPU信息
3 显示内存使用情况
4 显示磁盘使用情况
5 打印菜单
6 显示本地计算机主机名
7 显示进程个数
8 退出\033[0m"
delimiter
}
#######################################################
#定义数组
memu_select=("显示本地计算机IP地址" "显示CPU信息" "显示内存使用情况" "显示硬盘使用情况" "打印菜单" "显示本地计算机主机名" "显示进程个数" "退出")
#######################################################
#循环语句
while true
do
select num in ${memu_select[*]}
do
if [ "$num" == ${memu_select[0]} -o "$num" == ${memu_select[1]} -o "$num" == ${memu_select[2]} -o "$num" == ${memu_select[3]} -o "$num" == ${memu_select[4]} -o "$num" == ${memu_select[5]} -o "$num" == ${memu_select[6]} -o "$num" == ${memu_select[7]} ];then
case $num in
${memu_select[0]})
cutip
delimiter
;;
${memu_select[1]})
cpuinf
delimiter
;;
${memu_select[2]})
mem_used
delimiter
;;
${memu_select[3]})
sda_used
delimiter
;;
${memu_select[4]})
memu;;
${memu_select[5]})
hostnam
delimiter
;;
${memu_select[6]})
io_info
delimiter
;;
${memu_select[7]})
break 7;;
esac
else
echo -e "\033[31m选项错误!\033[0m"
continue
fi
done
done
#######################################################