linux主机A自动备份到主机B

13November

2:03 PM

15 次浏览

0 条评论

在主机 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


留言评论
称呼
邮箱
网址