跳板机shell脚本基于hosts

方法一:

passwd=abcd

echo > /tmp/login_case.sh
cat > /tmp/login.sh << EOF
#!/usr/bin/expect
set host [lindex \$argv 0]
set passwd [lindex \$argv 1]
spawn  -noecho ssh  \$host -p9880
 expect {
    "(yes/no)?" {
        send "yes\n"
        expect "assword:"
        send "\$passwd\n"
    }
        "assword:" {
        send "\$passwd\n"
    }
 }
interact
exit
EOF

echo case '$1' in >> /tmp/login_case.sh
num=`sed '1,2d' /etc/hosts | wc -l`
for i in `seq 1 $num`
        do
        hang=`sed '1,2d' /etc/hosts |sed -n "$i p"`
        host=`sed '1,2d' /etc/hosts |sed -n "$i p" | awk '{print $2}'`
        echo '('$i')' $hang
cat >> /tmp/login_case.sh << EOF
$i) echo "login $host:"
expect /tmp/login.sh $host $passwd ;;
EOF
done
echo  '*)'echo "You do not select a number between 1 to $num" >> /tmp/login_case.sh
echo  esac >> /tmp/login_case.sh
echo -e "\n"


read -p "Choose you number: " input


bash /tmp/login_case.sh $input


方法二


num=`sed '1,2d' /etc/hosts | wc -l`
host=`sed '1,2d' /etc/hosts |sed -n "$input p" | awk '{print $2}'`
passwd=abcd
cat > /tmp/login.sh << EOF
#!/usr/bin/expect
set host [lindex \$argv 0]
set passwd [lindex \$argv 1]
spawn -noecho ssh  \$host -p9880
 expect {
    "(yes/no)?" {
        send "yes\n"
        expect "assword:"
        send "\$passwd\n"
    }
        "assword:" {
        send "\$passwd\n"
    }
 }
interact
exit
EOF
#-----------列出host文件----------------------
for i in `seq 1 $num`
        do
        echo '('$i')'`sed '1,2d' /etc/hosts|sed -n "$i p"`
done
echo -e "\n"
#---------------读取选着文件------------------------
read -p "Choose you number: " input
host=`sed '1,2d' /etc/hosts |sed -n "$input p" | awk '{print $2}'`
cat > /tmp/login_case.sh << EOF
#!/bin/bash
case $input in
$input) echo "login $host:"
expect /tmp/login.sh $host $passwd ;;
*)echo "You do not select a number between 1 to $num"
esac
EOF
bash /tmp/login_case.sh


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值