#!/bin/bash
# 同步 /data/dbbak 到远程服务器 10.75.174.213:/data/club_dbbak
# 使用 rsync + sshpass 实现带密码的自动同步
REMOTE_HOST="10.75.174.213"
REMOTE_PORT="2222"
REMOTE_USER="root"
REMOTE_DIR="/data/club_dbbak"
LOCAL_DIR="/data/dbbak"
echo "========================================="
echo "开始同步: $LOCAL_DIR -> $REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR"
echo "时间: $(date '+%Y-%m-%d %H:%M:%S')"
echo "========================================="
# 检查 sshpass 是否安装
if ! command -v sshpass &> /dev/null; then
echo "正在安装 sshpass..."
if command -v apt-get &> /dev/null; then
apt-get update && apt-get install -y sshpass
elif command -v yum &> /dev/null; then
yum install -y sshpass
elif command -v dnf &> /dev/null; then
dnf install -y sshpass
else
echo "错误: 无法自动安装 sshpass,请手动安装后重试"
exit 1
fi
fi
# 使用 sshpass + rsync 同步
sshpass -p '远程服务器密码' rsync -avz --progress \
-e "ssh -p $REMOTE_PORT -o StrictHostKeyChecking=no" \
"$LOCAL_DIR/" \
"$REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR/"
if [ $? -eq 0 ]; then
echo "========================================="
echo "同步完成! 时间: $(date '+%Y-%m-%d %H:%M:%S')"
echo "========================================="
else
echo "========================================="
echo "同步失败! 请检查网络连接和认证信息"
echo "========================================="
exit 1
fi
©著作权归作者所有