香港/韩国云服务器、独立服务器租用

使用rsync同步备份网站数据到异地服务器

自营机房/高防服务器/高防VPS/美国高防/洛杉矶VPS/洛杉矶高防服务器

记录下使用rsync同步网站数据实现异地备份,这样万一服务器挂了的话马上恢复访问也更快。

网站放置在服务器A,备份服务器为B,两台服务器均为Debian12系统,本文主要记录网站文件自动同步,不包含数据库。

1.在A/B服务器都安装Lsyncd

sudo apt update
sudo apt install lsyncd rsync

2. 配置 SSH 密钥认证(免密同步)

# 在服务器 A 执行
ssh-keygen -t rsa  # 一直按回车使用默认路径
#或者ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub –p 端口 root@B的IP  # 输入B的密码

完成后试下能不能连接到B服务器

ssh -p 端口 root@B的IP

3.安装inotify-tools(在A服务器)

sudo apt update && sudo apt install inotify-tools –y

4.创建同步脚本:假设/root/sync_files.sh

#!/bin/bash
SOURCE_DIR="/home/wwwroot/A.com"       # A 服务器网站目录
DEST_HOST="1.1.1.1"       # B 服务器 IP
DEST_DIR="/home/wwwroot/A.com"        # B 服务器目标目录
SSH_PORT="1234"                 # B 服务器 SSH 端口

# 实时监控并同步
inotifywait -mrq --format '%w%f' -e create,modify,delete,move "$SOURCE_DIR" | while read file
do
  # 同步变化的文件(需确保路径正确)
  rsync -avz -e "ssh -p $SSH_PORT" --delete "$SOURCE_DIR/" root@$DEST_HOST:$DEST_DIR
  echo "$(date): Synced $file" >> /root/sync.log  # 可选:记录日志
done

注:以上在AB服务器/home/wwwroot都有相同目录,如果B没有先创建并设定权限

5.赋予脚本执行权限并后台运行

chmod +x /root/sync_files.sh
nohup /root/sync_files.sh > /dev/null 2>&1 & 

如果发现没同步,可以修改脚本输出到日志文件,临时调试和查看日志

nohup /root/sync_files.sh > /root/sync.log 2>&1 &
cat /root/sync.log

也可以手动测试下rsync命令是否正常执行

rsync -avz -e "ssh -p 端口" --delete /home/wwwroot/A.com root@B的IP:/home/wwwroot/A.com

本站QQ群:683851361,联系我:zrblog@qq.com

分享到
便宜VPS/10美元VPS/洛杉矶、圣何塞等多个机房