0
点赞
收藏
分享

微信扫一扫

rclone的使用

晚熟的猫 2023-05-17 阅读 82

以前同步数据习惯用rsync,最近使用AWS的Transfer Family服务,即SFTP,发现rsync无法用了,因为必须结合ssh,但是SFTP跟ssh不一样。曾经尝试将sftp挂载为本地盘使用rsync,但是发现这样的挂载不稳定,sftp会莫名断开。查询后发现rclone,测试后发现也不错。

安装:

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

这种安装方式会自动安装最新版,如果使用ubuntu命令安装:apt install rclone

默认安装的是1.50.2的旧版,这个版本会有很多莫名其妙的问题。例如与sftp使用key验证的时候,会提示:failed to parse private key file: ssh: key is not password protected

安装完成后,查看版本信息:

rclone --version

rclone的使用_sftp

rclone 创建配置文件是交互式,这个有点意思:

rclone config

按照提示一步步输入即可

rclone的使用_sftp_02

完成后的配置文件可通过命令找到保存位置:

rclone config file

rclone的使用_sftp_03

具体文件内容,后续可以通过修改文件实现更改配置的目的

rclone的使用_sftp_04

这里最后一行我添加了1条规则: set_modtime = false

因为AWS的SFTP存储我设置连接到S3,无法将文件的属性时间设置为默认时间,而是S3根据文件上传时间自动添加。如果不加这一条,会提示无法修改时间的错误。

具体命令:

rclone copy -P --no-update-modtime --size-only /share/Test/ aff:/Test/

解析:

-P 即显示过程,类似rsync -v

--no-update-modtime --size-only 无法根据文件修改时间检查是否同步,因为sftp上的时间是文件上传时间,始终跟本地上文件的时间不一致,如果不加会导致文件不断被重复上传,因此改为通过检查文件大小来决定是否同步旧文件,因为文件如果被修改过,size肯定会发生变化

/share/Test/ 指定本地需要同步的文件夹

aff:/Test/ aff是创建的配置的名字,:/Test/是SFTP上对应的文件夹


举报

相关推荐

0 条评论