Hugo博客公告弹窗

两台服务器利用rclone同步文件解决方案

   
文章摘要
摘要小助理今天溜号啦……😜

安装rclone

服务器A同步文件到服务器B

首先在服务器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 #静默生成rclone密钥对
cd ~/.ssh/
cat rclone* > rclone-merged   # 将密钥对合并,否则会连接失败

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

复制公钥到服务器B

假设服务器B的ip是192.168.1.33,ssh端口是33,使用以下命令,然后输入服务器B的密码即可

#在服务器A输入以下命令

ssh-copy-id -i ~/.ssh/rclone.pub -f -p 33 root@192.168.1.33 #自行修改为你自己的

手动复制

在服务器A打开rclone.pub,复制里面的内容,在服务器B/root/.ssh/

的目录下新建authorized_keys文件,粘贴内容到authorized_keys

配置文件

在服务器A编辑rclone.conf文件,没有的话需要新建

新建

touch ~/.config/rclone/rclone.conf

编辑rclone.conf

nano ~/.config/rclone/rclone.conf

只需要修改标识符,服务器B的ipuser, port, 其他不用动 标识符就是标记服务器B的,

[serb]        #标识符,很重要,可以随意起
type = sftp
host = 192.168.1.33  #改为服务器B的ip
user = root     #默认root用户
port = 22       #默认22端口,如果是其他端口请修改
key_file = ~/.ssh/rclone-merged  
shell_type = unix
md5sum_command = md5sum
sha1sum_command = sha1sum

开始同步

多个文件夹同步(需在同级目录下)

假设服务器A下的/www/wwwroot,有n个文件夹,而你只想要同步aa和bb两个文件夹,把aa和bb同步到服务器B的/www/kkk目录,使用以下命令

rclone sync /www/wwwroot serb:/www/kkk -u -v -P --transfers=20 --ignore-errors --buffer-size=128M --check-first --checkers=10 --drive-acknowledge-abuse --include "/{aa,bb}/**"

单个文件夹同步

同步服务器A/www/wwwroot/aa 到 服务器B /www/kkk

rclone sync /www/wwwroot/aa serb:/www/kkk -u -v -P --transfers=20 --ignore-errors --buffer-size=128M --check-first --checkers=10 --drive-acknowledge-abuse

定时任务

把要执行同步的命令输入即可

sudo curl -sS -O https://gitee.com/dayu777/open_shell/raw/main/synct.sh && chmod +x synct.sh && ./synct.sh
CC BY-NC-SA 4.0 转载请注明
最后更新于 2024-11-20 16:13
clarity统计