用 shell编程实现 jumpserver跳板机的功能
首先是选择 1运维 或者 2 开发人员
然后输入自己密码(输入4次错误 就退出程序)
输入 woshiyunwei 可结束 程序 (已经实现了 屏蔽 ctrl c 信号)
输入密码123456 可以进入2级菜单:
#!/bin/bash WEB01=10.0.0.7 WEB02=10.0.0.8 NFS=10.0.0.31 MYSQL=10.0.0.51 BACKUP=10.0.0.41
menu2(){ echo -e "\t\t\t \033[41;36m 1 $WEB01 \033[0m" echo -e "\t\t\t \033[41;36m 2 $WEB02 \033[0m" echo -e "\t\t\t \033[41;36m 3 $NFS \033[0m" echo -e "\t\t\t \033[41;36m 4 $MYSQL \033[0m" echo -e "\t\t\t \033[5;34m 5 $BACKUP \033[0m"
echo -e "\t\t\t \033[41;36m 6 退出当前 \033[0m"
}
menu3(){
echo -e "\t\t\t \033[41;36m 3 $NFS \033[0m" } menu1(){ echo -e "\t\t\t \033[41;36m 1 运维人员 \033[0m" echo -e "\t\t\t \033[41;36m 2 开发人员 \033[0m"
}
func_menu2(){
while true do menu2 read -p "请输入要连接的服务器编号" num case $num in 1) ssh $WEB01 ;; 2) ssh $WEB02 ;; 3) ssh $NFS ;; 4) ssh $MYSQL ;; 5) ssh $BACKUP ;; 6) break ;;
*) echo " Please use $0 [1|2|3|4..]" esac
done }
num_passwd=0 while true do menu1 trap "" INT HUP TSTP read -p "请输入工作岗位编码" worknum if [ $worknum == woshiyunwei ]; then exit fi case $worknum in 1) read -p "请输入密码:" passwd echo $passwd if [ $passwd == 123456 ]; then func_menu2 elif [ $num_passwd == 3 ]; then echo "密码输入超过3次 即将退出" sleep 3 exit else num_passwd=$((num_passwd+1)) read -p "$num_passwd次密码错误 请重新输入" passwd
fi
;; 2) func_menu3 ;; *) echo "please use [1|2]"
esac
done