假设有两台服务器的示例 IP 地址为:
现在来解释如何使用这个脚本进行服务器之间文件夹内容的同步,保留路径和服务器信息的抽象化。
假设脚本文件位于 /root/script.sh
,首先为其添加执行权限:
chmod +x /root/script.sh
脚本的内容如下,使用了通用的文件夹路径和服务器信息:
#!/bin/bash
# SSH 用户名和服务器地址
USER="root"
SERVER_A="192.168.1.100"
SERVER_B="192.168.1.200"
# 文件夹路径,假设需要同步的目录在两台服务器上的路径
FOLDER_A="/path/to/folder/on/serverA/"
FOLDER_B="/path/to/folder/on/serverB/"
# SSH 密码
SSHPASS="your_ssh_password"
# 从 SERVER_A 同步到本地 SERVER_B
sshpass -p "$SSHPASS" rsync -avz -e "ssh -o StrictHostKeyChecking=no" "$USER@$SERVER_A:$FOLDER_A" "$FOLDER_B"
# 从本地 SERVER_B 同步到 SERVER_A
sshpass -p "$SSHPASS" rsync -avz -e "ssh -o StrictHostKeyChecking=no" "$FOLDER_B" "$USER@$SERVER_A:$FOLDER_A"
echo "Sync complete."
在终端中以 root 用户身份执行脚本:
sudo /root/script.sh
SSHPASS="your_ssh_password"
),在实际使用中应使用安全的密码管理或 SSH 密钥认证来替代密码认证。这个脚本适用于需要在两台服务器之间定期同步特定文件夹内容的情况,通过自动化脚本可以有效简化操作流程并提高效率。