在主机 A执行:
ssh-keygen -t rsa -b 4096 -N "" -f /root/.ssh/id_rsa
把公钥发给主机 B(假设 B 的 IP 是 1.2.3.4,用户是 root):
ssh-copy-id -p 22 root@1.2.3.4
首次需要输入密码
验证
ssh -p '22' root@1.2.3.4 exit退出主机B
---------------
写同步脚本(主机A)创建文件 /www/backup/sync_db_to_remote.sh:
#!/bin/bash
LOCAL_DIR="/www/backup/database/mysql/crontab_backup/"
REMOTE_USER="root"
REMOTE_HOST="116.62.**.**"
REMOTE_DIR="/www/backup/hosttyxx/"
SSH_PORT=22
LOG="/www/backup/sync_db.log"
echo "[$(date '+%Y-%m-%d %H:%M:%S')] start sync" >> $LOG
rsync -az --timeout=300 -e "ssh -p $SSH_PORT" "$LOCAL_DIR" "$REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR" >> $LOG 2>&1
if [ $? -eq 0 ]; then
echo "[$(date '+%Y-%m-%d %H:%M:%S')] sync success" >> $LOG
else
echo "[$(date '+%Y-%m-%d %H:%M:%S')] sync failed" >> $LOG
fi
给权限:
chmod +x /www/backup/sync_db_to_remote.sh
手动跑一次测试:/www/backup/sync_db_to_remote.sh
--------------------
宝塔面板 → 计划任务 → 添加任务
任务类型:Shell 脚本
脚本内容:
/www/backup/sync_db_to_remote.sh