shell菜单练习2

 #!/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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值