远程连接服务器执行命令(密码相同)
#! /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 "-----------------------------执行更新服务脚本--------------------------"