安装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.pub
,rclone
,以及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的ip,user, 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