美文网首页Web 前端开发 web前端
SSH连接管理 (我的第一个shell脚本)

SSH连接管理 (我的第一个shell脚本)

作者: 北纬40度的思念 | 来源:发表于2019-02-17 02:12 被阅读0次

    由于 ssh 链接的服务过多,自己都记不清除 iterm profiles 中的快捷键设置的设置是哪个,于是就产生了一个想法,是不是可以写一个 shell 脚本规划和整理这些内容呢?于是就去查看shell的相关语法终于写出了自己的第一个shell脚本。

    #!/usr/bin/expect -f
      set user root
      set host xxx.xxx.xxx.001
      set password xxx
      set port 22
      set timeout -1
    
      spawn ssh $user@$host -p $port
      expect "*assword:*"
      send "$password\r"
      interact
    

    对于 iterm 中配置快捷键 快速连接远程服务 这一段内容想必是并不陌生的了,此处略过。

    那么怎才能在只设置一个快捷键的情况下快速的选择自己想要连接的服务呢。

    那么就产生了这样一个想法:只写一个shell脚本,让这个脚本动态读取某一个文件夹下所有的原来设置的那些脚本,并且在后续有其他新连接时我只需要写一个新的脚本,不需要更改其他脚本。

    具体实现如下:

    #!/bin/bash
    
    green="\033[32m"
    yellow="\033[33m"
    end="\033[0m"
    dir="[...path...]/ssh_config/"
    ignore="SSHConnect.sh"
    files=()
    
    function getFiles () {
      i=1
    
      for item in $(ls $dir); do
        if [[ ! $ignore =~ $item ]]; then
          if [[ $1 ]]; then
            echo -e "${green} ${i})${item}${end}"
          fi
    
          files[$i-1]=$item
          ((i++))
        fi
      done
    }
    
    function inputSelect () {
      read -p "Please input an option: " opt
    
      if [[ $opt ]]; then
        if [[ $opt = "q" || $opt = "Q" ]]; then
          echo -e "${yellow} you canceled the select.${end}"
          exit
        else
          tryConnect
        fi
      else
        inputSelect
      fi
    }
    
    function tryConnect () {
      i=${#files[@]}
    
      while [[ $i -gt 0 ]]; do
        if [[ $i -eq $opt ]]; then
          res=${files[$i-1]}
          break
        fi
    
        ((i--))
      done
    
      if [[ $res ]]; then
        echo -e "${green}Connecting ${res}. ${end}"
        "${dir}${files[i-1]}"
      else
        inputSelect
      fi
    }
    
    echo -e "${yellow}Please select you connect server:${end}"
    getFiles 1
    inputSelect
    



    ssh_config 目录如下

    ssh_config 目录

    iterm 设置如下

    iterm 设置

    运行结果如下


    运行结果

    相关文章

      网友评论

        本文标题:SSH连接管理 (我的第一个shell脚本)

        本文链接:https://www.haomeiwen.com/subject/xjpweqtx.html