#!/bin/bash #author leo #2020-04-13 09:22:11 #!/bin/bash #设置显示颜色 color_success="echo -en \\033[1;32m" color_faile="echo -en \\033[1;31m" color_waining="echo -en \\033[1;34m" color_normal="echo -en \\033[1;39m" local_time=$(date +"%Y%m%d %H:%M:%S") r_col='\033[31m' no_col='\033[0m' g_col='\033[32m' p_col='\033[35m' b_col='\033[34m' line1='++++++++++++++++++++++++' line2='********************************' line3='--------------------------------' #主菜单main_menu main_menu(){ clear cat << EOF $line1 $local_time $(echo -e "\033[47;32m$p_col 主菜单 $no_col\033[0m") $line1 `echo -e "\033[31m (1)\033[0m系统信息菜单"` `echo -e "\033[31m (q)\033[0m按q退出"` $line1 EOF read -p "输入选择菜单:" input1 case $input1 in 1) clear info_menu ;; Q|q) clear exit 0 ;; *) echo "----------------" echo "输入正确的选项" echo "----------------" sleep 1 clear main_menu esac } #系统信息菜单 info_menu(){ NIC_name=$( ifconfig | head -1 | cut -d : -f1 ) Ip_info=$(ifconfig | head -2 | grep inet | tr -s " ") Mem=$(free -m | grep Mem | tr -s " " | cut -d " " -f2) Mem_toal=$(free -m | grep Mem | tr -s " " | cut -d " " -f7) Free_disk=$(df -h | grep /$ | tr -s " " | cut -d " " -f 4) Cpu=$(cat /proc/loadavg | cut -d ' ' -f3) Cpu_num=$(cat /proc/cpuinfo | grep "cpu cores" | head -n 1 | cut -d " " -f3) Login_num=$(who | wc -l) Total_num=$(cat /etc/passwd | wc -l) hostname=`hostnamectl | grep Sta |awk '{print $3}'` linux=`awk -F 'release ' '{print $2}' /etc/redhat-release |cut -d ' ' -f1` iptables=`systemctl status firewalld.service | grep "Active" | awk '{print $3 }'` j=$(java -version 2>&1 | awk 'NR==1{print $3}') selinux=`getenforce` n=`awk -F ':' '$3>=1000' /etc/passwd |wc -l` cat << EOF $line2 $local_time $line2 $(echo -e "\033[47;31m 系统信息菜单 \033[0m") $line2 网卡名:$NIC_name ip地址信息:$Ip_info 内存总量:$Mem M 剩余内存为:$Mem_toal M cpu核数:$Cpu_num cpu每十五分钟平均负载:$Cpu 主机名:$hostname linux版本:$linux 当前系统用户为:$USER 当前登录账户数:$Login_num 当前系统账户总数:$Total_num 当前系统 普通账户总数:$n selinux状态:$selinux 防火墙:$iptables java信息:$j $line3 `echo -e "\033[47;31m 系统信息修改菜单 \033[0m"` $line3 $line2 (1) 修改主机名 (2) 修改IP地址 (3) 关闭防火墙 (4) 关闭SELINUX安全机制 (5) ping网络IP (6) 安装/卸载Java (X)按b返回主菜单 (q) 按q退出 ******************************* EOF read -p "输入选择修改:" input2 case $input2 in 1) read -p "输入主机名:" iname hostnamectl set-hostname $iname sleep 1 info_menu ;; 2) #file=/etc/sysconfig/network-scripts/ifcfg-$NIC_name #oldip=`ifconfig | head -2 | grep inet | tr -s " " | cut -d ' ' -f 3` #read -p "请输入ip地址:" ipnum #sed -i 's/IPADDR=$oldip/IPADDR=$ipnum/g' $file echo "还是不要改了" sleep 1 info_menu ;; 3) systemctl stop firewalld.service systemctl disable firewalld.service sleep 1 clear info_menu ;; 4) sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config setenforce 0 sleep 1 clear info_menu ;; 5) read -p "输入要ping的网络IP前三位: " ip regex="\b(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[1-9])\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])" ckStep2=`echo $ip | egrep $regex | wc -l` if [ $ckStep2 -eq 0 ];then echo "The string $IPADDR is not a correct ipaddr!!!" fi m_ping() { ping -c2 -i0.1 -W1 $1 &>/dev/null if [ $? -eq 0 ];then echo "$1 is up" fi } #控制进程数量 num=100 #创建命令管道文件,并绑定文件描述符,创建其文件描述,通过重定向将数据导入管道文件 pipefile="/tmp/multiping_$$.tmp" mkfifo $pipefile exec 12<>$pipefile for i in `seq $num` do echo "" >&12 & done for j in {1..254} do read -u12 { m_ping $ip.$j echo "" >&12 } & done wait rm -rf $pipefile info_menu ;; 6) #判断是否有yum源并配置阿里源 test_yum(){ yum clean all &>/dev/null num=$(yum repolist -e 0 | awk '/repolist/{print $2}' | sed 's/,//') if [ $num -le 0 ];then $color_faile echo -n "error,,,,,,有没yum源" echo "配置阿里yum源" ping www.baidu.com > /dev/null 2>&1 if [ $? -ne 0 ];then echo "网络不通,请先配置网络" info_menu else wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo fi $color_normal info_menu else $color_success echo -n "success,,,,,,有yum源" $color_normal fi #判断是否Java并卸载 test_java(){ if [ $j -ne 0 ];then $color_faile echo -n "error,,已经安装Java。请先卸载" $color_normal echo "当前Java版本:$j" read -p "是否卸载当前版本Java$j:y/n" a if [ $a -eq y ];then old_java=$(rpm -qa | grep jdk) for i in $old_java do yum -y remove $i > /dev/null 2>&1 rpm -e --nodeps $i > /dev/null 2»&1 done Java -version > /dev/null 2>&1 if [ $? -eq 1 ];then echo "java已经卸载 " info_menu fi else info_menu fi fi } #安装函数 java_install(){ yum -y install java-$1.0-openjdk.x86_64 >/dev/null cat >> /etc/profile <<- EOF JAVA_HOME=/usr/lib/jvm/java-$1.0-openjdk.x86_64 PATH=$PATH:$JAVA_HOME/bin CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export JAVA_HOME CLASSPATH PATH EOF source /etc/profile java -version > /dev/null 2>&1 if [ $? -eq 0 ];then echo "java已经安装 " fi #安装菜单 info_menu } java_menu(){ case $1 in 1) java_install 1.6 ;; 2) java_install 1.7 ;; 3) java_install 1.8 ;; B|b) clear info_menu ;; *) echo "输入正确的选项" clear info_menu esac } echo "------------" echo "+----yum---+" echo "| (1) 1.6 |" echo "| (2) 1.7 |" echo "| (3) 1.8 |" echo "|(b)按b返回|" echo "+----------+" read -p "选择需要安装的版本:" num test_yum test_java java_menu $num B|b) clear main_menu ;; Q|q) clear exit 0 ;; *) echo "----------------" echo "输入正确的选项" echo "----------------" sleep 1 clear info_menu esac } main_menu
shell菜单练习2
最新推荐文章于 2023-12-02 00:33:00 发布