星期二, 12月 07, 2010

懶人ssh 站台列表

因為工作的需要…常常要ssh到不同的電腦去跑CASE,如果用X介面的SSH client軟體,通常都可以弄一些站台列表。然後只要點選就可以,方便的很,可是如果是透過終端介面去連,都每都要下指令,非常的煩人。下面的script範例,可以把常連的機器放進去一個script中,以後只要執行它,就可以連到你想連的地方去啦,當然,我的功力普普,所以一定有可以改進的地方,就這樣啦,夠用就好。
把下面的文字存成lazssh.bash,當然,常用的電腦IP要改,最後增加可以執行的權限即可。以後只要執行它,就可以連到你想去的地方啦 。
#******************************
#ssh client menu script by CMD
#                               2010.02.25
#******************************
# specify PC's IP address here
# 把常用的電腦IP加在這裏
PC[1]="192.168.69.247"
PC[2]="192.168.69..243"
PC[3]="192.168.69..122"
PC[4]="192.168.69..141"
#***********************************
# do not need to be changed from here
REPEAT_LOOP=1
while [ "$REPEAT_LOOP" = 1 ]; do
    clear
    echo " Lazy ssh....."
    I=0
    for Spc in "${PC[@]}";do
      I=`expr $I + 1`
      echo " $I. ssh to $Spc."
    done
    I=0
    for Spc in "${PC[@]}";do
      I=`expr $I + 1`
      echo " X$I. ssh -X to $Spc."
    done
    echo " X|x.  EXIT."
    echo " "
    echo -n "Please type a selection: "
    read usr_choice &> /dev/null
    if (( $usr_choice > 0 && $usr_choice <= $I )) ; then
       echo "ssh ${PC[$usr_choice]}..."
       ssh ${PC[$usr_choice]}
    elif ([ $usr_choice = "X" ] || [ $usr_choice = "x" ]) ; then
       echo "Exiting ......"
       exit
    else
      tmp=`echo "$usr_choice" | sed s/X// | sed s/x// `
      if (( $tmp > 0 && $tmp <= $I )) ; then
        echo "ssh -X ${PC[$tmp]}..."
        ssh -X ${PC[$tmp]}
      else
        echo "Invalid Choice. Please try again."
        REPEAT_LOOP=1
      fi
    fi
done

1 則留言:

哇哇 提到...

可以試試看.ssh/config寫入alias name
加上ssh認證後超級方便的唷!!!