Hugo博客公告弹窗

Rclone 单向实时同步:A→B 服务器自动化方案

场景

A服务器同步内容到B服务器(单向同步)

特点:

本地文件变化 → 延迟 5 秒同步

没有变化 → 每 1 小时强制同步一次

安装 rclone

首先在服务器 A 安装 rclone, 使用以下命令安装

sudo -v ; curl https://rclone.org/install.sh | sudo bash

生成密钥对

在服务器 A 生成密钥对,以及合并密钥,复制以下命令

ssh-keygen -q -t rsa -b 4096 -C "rclone key" -N "" -f ~/.ssh/rclone
cd ~/.ssh/
cat rclone* > rclone-merged

会在 /root/.ssh/ 目录下生成 rclone.pub,rclone,以及 rclone-merged 三个文件

复制rclone.pub里面的内容,等下用到

cat rclone.pub

在B服务器上运行以下命令,粘贴rclone.pub里面的内容(注意是在B服务器)

read -p "请输入你的公钥内容: " PUBKEY && mkdir -p /root/.ssh && touch /root/.ssh/authorized_keys && chmod 700 /root/.ssh && chmod 600 /root/.ssh/authorized_keys && grep -qxF "$PUBKEY" /root/.ssh/authorized_keys || echo "$PUBKEY" >> /root/.ssh/authorized_keys && echo "✅ 公钥已添加(或已存在)"

以上命令不会覆盖已有的公钥、不会重复、权限正确。AB服务器便可以联通了。

创建配置文件

注意:是在A服务器创建

mkdir -p ~/.config/rclone
nano ~/.config/rclone/rclone.conf

粘贴以下内容

[ovh]        
type = sftp
host = 服务器B的ip
user = root     
port = 服务器B的ssh端口号
key_file = ~/.ssh/rclone-merged  
shell_type = unix
md5sum_command = md5sum
sha1sum_command = sha1sum

修改为你的服务器B的ip、ssh端口,注意:ovh表示B的服务器名称,可以随意命名,其他不变

同步脚本

以下操作均在A服务器运行

安装依赖

sudo apt update
sudo apt install rclone inotify-tools

下载同步脚本到A服务器

curl -sS -O https://raw.githubusercontent.com/woniu336/open_shell/main/rclone-sync.sh && chmod +x rclone-sync.sh

修改同步目录

nano rclone-sync.sh

首次同步测试

./rclone-sync.sh

按ctrl+c 停止同步

后台运行

loginctl enable-linger root
./rclone-sync.sh systemd_setup

如果下次修改了同步目录,需要再次运行

./rclone-sync.sh
./rclone-sync.sh systemd_setup

管理同步

下载管理脚本,在A服务器操作

curl -sS -O https://raw.githubusercontent.com/woniu336/open_shell/main/rclone_manage.sh && chmod +x rclone_manage.sh

使用方法,例如

./rclone_manage.sh ovh:/www/wwwrot/blog

后面跟着B务器名称+同步的路径

预览

==========================================
  RClone 服务管理
==========================================
1) 查看状态
2) 启动服务
3) 停止服务
4) 重启服务
5) 查看日志 (实时)
6) 退出
==========================================
CC BY-NC-SA 4.0 转载请注明
最后更新于 2025-10-28 03:27
clarity统计