jenkins_jumpserver.sh 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #/bin/bash
  2. # 定义数组
  3. ip=()
  4. username=()
  5. desc=()
  6. way=()
  7. sh_path=$(cd $(dirname $0); pwd)
  8. # 读取文件
  9. while IFS=',' read -r ip_field username_field desc_field way_field; do
  10. ip+=("$ip_field")
  11. username+=("$username_field")
  12. desc+=("$desc_field")
  13. way+=("$way_field")
  14. done < "${sh_path}/IP.conf"
  15. while [ 1 ]
  16. do
  17. echo "机器列表: "
  18. for(( i = 0; i < ${#ip[@]}; i++)) do
  19. echo " $((i+1)). ${ip[i]} (${desc[i]})"
  20. done
  21. echo ""
  22. read -p "请选择要登录的机器(输入q、quit、exit退出): " i
  23. case "$i" in
  24. 'q'|'quit'|'exit')
  25. echo "退出"
  26. exit 1
  27. ;;
  28. *)
  29. if [[ $i =~ ^[0-9]+$ ]] && (( $i > 0 && $i <= ${#ip[@]} )) ; then
  30. index=$i-1
  31. echo "即将登录: ${desc[$index]}"
  32. echo ""
  33. if [[ ${way[$index]} =~ 'cert' ]]; then
  34. ssh -i /root/.ssh/stuuudy.pem ${username[$index]}@${ip[$index]}
  35. exit 1
  36. else
  37. ssh ${username[$index]}@${ip[$index]}
  38. exit 1
  39. fi
  40. else
  41. echo "请选择正确的机器"
  42. echo ""
  43. fi
  44. ;;
  45. esac
  46. done