rclone-通过HTTPS协议定时同步多个电脑文件

经常会遇到从多个客户机同步文件到服务器的场景,经过测试与验证发现nginx+ssl+rclone架构实现起来比较容易。

核心步骤

  • 下载nginx/rclone;
  • 生成自签发ssl证书(https://www.lddgo.net/encrypt/ssl);
  • 配置nginx,配置ssl+basic auth;
  • rclone cli添加或conf文件配置;
  • 同步验证;

经验总结

  • rclone无法配置定时同步,需要通过linux crontab或者windows定时任务实现定时同步;
  • rclone sync http源时,可以同步本目录、子目录、同步后文件名正确;
  • nginx.conf 可以指定root目录为中文文件夹;

细节步骤

1、nginx配置

nginx配置文件见下,添加了daemon off;便于前台执行方便测试:

worker_processes  1;
daemon off;
events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
	autoindex on; # 显示目录
	autoindex_exact_size on;# 显示文件大小
	autoindex_localtime on;# 显示文件时间

    sendfile        on;
    keepalive_timeout  65;
    gzip  on;
	
    server {
        listen       59580 ssl;
        server_name  localhost;
	root D:\360极速浏览器X下载;

	auth_basic "basic auth";
    	auth_basic_user_file ../ssl/basic_auth.pwd;
		
	ssl_certificate ../ssl/ssl.pem;
        ssl_certificate_key ../ssl/ssl.key;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
		
    }
}

以上配置文件中的ssl.key、ssl.pem、basic_auth.pwd文件均为各类网站在线生成的。

2、rclone

rclone 添加源配置命令见下,通过以下命令添加名称为lzha的HTTPS源。

rclone config   --config="rclone.conf"

rclone立即同步命令,忽略ssl证书:

rclone sync  lzha: ./lzhalocal --no-check-certificate --progress --config="rclone.conf"

rclone自动生成的rclone.conf配置文件内容:

[lzha]
type = http
url = https://user:password@192.168.1.202:59580/