脚本.远程连接服务器执行命令.向多个机器传输文件

文章介绍了如何使用bash脚本在多个远程服务器上执行命令并传输文件,包括SSH和SCP的密码管理,以及文件传输后的状态检查。
摘要由CSDN通过智能技术生成

远程连接服务器执行命令(密码相同)

#! /usr/bin/env bash

# 设置服务器列表,每个服务器使用空格分隔  
remote_hosts=("192.168.1.1" "192.168.1.2" )
# 设置用户名和密码  
USERNAME="root"
PASSWORD="123456"

echo "-----------------------------执行命令--------------------------"
# 遍历服务器列表,连接到每个服务器并执行脚本  
for SERVER_IP in "${remote_hosts[@]}"
do
    sshpass -p $PASSWORD ssh -tt root@$SERVER_IP > /dev/null 2>&1 << EOF
    cd /home/
    mkdir abc
    exit
EOF
echo "finished"
done

echo "--------------------------所有命令执行完毕-----------------------------"

向多个机器传输文件(密码相同)

#!/bin/bash
# 定义源文件
source_file="/home/abc"
#目标文件路径
target_file="/home/"

# 定义远程服务器的IP地址、用户名和密码
remote_hosts=("192.168.1.1" "192.168.1.2" )
# 设置用户名和密码  
USERNAME="root"
PASSWORD="123456"

# 使用循环传输文件到每个远程服务器
for remote_host in "${remote_hosts[@]}"
do
    echo "传输文件到 $remote_host ..."
    /usr/bin/sshpass -p "$remote_password" /usr/bin/scp -r  "$source_file" "$remote_user"@"$remote_host":"$target_file"
    
    # 检查传输是否成功
    if [ $? -eq 0 ]; then
        echo "文件传输到 $remote_host 成功!"
		echo "============================================"
    else
        echo "文件传输到 $remote_host 失败!"
		echo "==============================================="
    fi
done
echo "-------------------------------全部文件传输完毕!-------------------------"
echo ""
echo "-----------------------------执行更新服务脚本--------------------------"
  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值