Chinaunix首页 | 论坛 | 博客
  • 博客访问: 246244
  • 博文数量: 41
  • 博客积分: 1523
  • 博客等级: 上尉
  • 技术积分: 579
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-05 21:23
文章分类

全部博文(41)

文章存档

2014年(1)

2013年(2)

2012年(1)

2011年(2)

2010年(3)

2009年(1)

2008年(20)

2007年(11)

分类: LINUX

2007-11-10 14:04:15

一个脚本简单实现linux下ssh管理。


#!/bin/bash
# User Function and Variables definition

# LOCALFILE="${HOME}/ssh-management"  (all user)

LOCALFILE="/etc/ssh/ssh-management"
[ -f /usr/bin/dialog ] || { echo "Not found dialog";exit 1; }
[ -f $LOCALFILE ] || touch $LOCALFILE
# User Program Main
function ADDSSH_HOST {
clear
echo -n "Pleast Input SSH Host IP: "
read -r ADDSSH[0]
DIGIT=(${ADDSSH[0]//[!0-9]/ })
[ "${#DIGIT[@]}" != "4" ] && {
        echo "IP ADDRESS ERROR "
        exit 1
}
echo -n "Pleast Input SSH Host Port (Default 22): "
read -r ADDSSH[1]
[ -z ${ADDSSH[1]} ] && ADDSSH[1]=22
if (( 0>${ADDSSH[1]} && ${ADDSSH[1]}>65536 ));then
        echo "Port Error."
        exit 1
fi
echo -n "Pleast Input Login Username (Default root): "
read -r ADDSSH[2]
[ -z ${ADDSSH[2]} ] && ADDSSH[2]=root
echo -n "Pleast Input Host Aliasname: "
read -r ADDSSH[3]
[[ ${ADDSSH[0]} != 127.0.0.1 ]] && echo ${ADDSSH[@]}|sed -e 's/\ /\t/g' >>$LOCALFILE
return 5
}
i=0
while read LINE
  do
        var=(${LINE});((i++))
        CONNECTING[$i]="$i '${var[0]}~${var[3]}'"
  done <${LOCALFILE}
CONNECTING[0]="0 'ADD-SSH-HOST'"
#25,50,20 height of outer border,width,height of inner border
dialog \
        --backtitle "SSH Mangemet" \
        --menu "SSH Accounts ... " 25 50 20 \
        --output-fd 3 \
        ${CONNECTING[@]} \
        3>/dev/shm/ssh-connect-tmp
SSHNUM=$(</dev/shm/ssh-connect-tmp)
[[ ${SSHNUM} == 0 ]] && ADDSSH_HOST
[ $? = 5 ] && exec ${0}
if [[ ${SSHNUM} > 0 ]];then
        SSHVAR=($(cat -n $LOCALFILE|grep -E "^\ +${SSHNUM}[^0-9]"))
        ssh -l ${SSHVAR[3]} -p ${SSHVAR[2]} ${SSHVAR[1]}
fi
rm -f /dev/shm/ssh-connect-tmp
exit 0

阅读(753) | 评论(0) | 转发(0) |
0

上一篇:UCARP翻译文档

下一篇:加密备份一个文件

给主人留下些什么吧!~~