sshpass批量建立互信,执行shell命令,scp传送文件

ssh-keygen 生成私钥公钥  ssh-keygen -t rsa

https://blog.csdn.net/weixin_41831919/article/details/101618641

脚本文件

#!/bin/bash
set -e
echo "请选择你要执行的脚本内容:
      1,建立互信,完成免密登录
      2,登录每个节点执行shell命令查看信息
      3,传输scp文件信息
      0,退出!"
function choose1(){
    for a  in `cat $1 |awk '{print $1}'`
    do
        echo "IP地址:$a"
        b=`cat $1 |grep -w $a |awk '{print $2}'`
        echo "用户密码:$b"
        sshpass -p $b ssh-copy-id -i ~/.ssh/id_rsa.pub root@$a -o StrictHostKeyChecking=no
        sleep 1
done
}

function choose2(){
    for a  in `cat $1 |awk '{print $1}'`
    do
        echo "IP地址:$a"
        b=`cat $1|grep -w $a |awk '{print $2}'`
        echo "用户密码:$b"
        sshpass -p $b ssh -o StrictHostKeyChecking=no root@$a $2
        sleep 1
done
}

function choose3(){
    for a  in `cat $1 |awk '{print $1}'`
    do
        echo "IP地址:$a"
        b=`cat $1|grep -w $a |awk '{print $2}'`
        echo "用户密码:$b"
        sshpass -p $b scp -o StrictHostKeyChecking=no $2 root@$a:$3
        sleep 1
done
}
while :
do
    read -p "请选择:" choose
    case $choose in
        0) echo "退出!"
           break;;
        1) echo "你选择了 建立互信,完成免密登录"
           read -p "输入ip信息文件名:"  ip
           choose1 $ip;;
        2) echo "你选择了 登录每个节点执行shell命令查看信息"
           read -p "输入ip信息文件名:"  ip
           read -p "输入要执行的linux命令:"  cmd
           choose2 $ip $cmd;;
        3) echo "你选择了 传输scp文件信息"
           read -p "输入ip信息文件名:"  ip
           read -p "输入传输本地文件绝对位置:" src
           read -p "输入传输目的绝对路径:" dts
           choose3 $ip $src $dts;;
        *) echo "你选择的不再选项范围内,请重新选择";;
    esac
done

脚本运用

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值