Rclone 使用教程:同步 FTP 文件到阿里云 OSS


阿拉平平

读完需要

8

分钟

速读仅需 3 分钟


Rclone 是一个由 Golang 编写的命令行工具,用于同步各云存储间目录和文件。官方将其描述为 rsync for cloud storage,即云存储版的 rsync。

本文将演示如何通过 Rclone 同步 FTP 文件到阿里云 OSS。


1. 准备


   

在同步文件前,我已经准备好了存储服务:
  • FTP:部署在主机 192.168.10.173 上。用户:test。

  • OSS:阿里云对象存储。名称:rclone-oss。

存储服务的信息在配置 Rclone 时会用到。在配置前们先安装下 Rclone。


2. 安装


   

Rclone 支持多平台运行,这里我安装在一台 CentOS 虚拟机上,采用二进制包安装。

下载并解压:

curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip
unzip rclone-current-linux-amd64.zip
# 目前我下载版本为 v1.50.2
cd rclone-v1.50.2-linux-amd64

复制二进制文件:

cp rclone /usr/bin/
chown root:root /usr/bin/rclone
chmod 755 /usr/bin/rclone

安装帮助手册:

mkdir -p /usr/local/share/man/man1
cp rclone.1 /usr/local/share/man/man1/
mandb

查看版本信息

[root@localhost ~]# rclone version
rclone v1.50.2
- os/arch: linux/amd64
- go version: go1.13.4
接下来就可以配置 Rclone 了。


3. 配置


   

Rclone 的配置向导相当友好,可以通过命令 Rclone config 进行配置,输入 n 新建
rclone config

No remotes found - make a new one
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n
name>


3.1 配置 FTP


   

我们先创建 FTP 配置,名称定为 ftp:
name> ftp
Type of storage to configure.
Enter a string value. Press Enter for the default ("").
Choose a number from below, or type in your own value
 1 / 1Fichier
    "fichier"
 2 / Alias for an existing remote
    "alias"
 3 / Amazon Drive
    "amazon cloud drive"
 4 / Amazon S3 Compliant Storage Provider (AWS, Alibaba, Ceph, Digital Ocean, Dreamhost, IBM COS, Minio, etc)
    "s3"
 5 / Backblaze B2
    "b2"
 6 / Box
    "box"
 7 / Cache a remote
    "cache"
 8 / Citrix Sharefile
    "sharefile"
 9 / Dropbox
    "dropbox"
10 / Encrypt/Decrypt a remote
    "crypt"
11 / FTP Connection
    "ftp"
12 / Google Cloud Storage (this is not Google Drive)
    "google cloud storage"
13 / Google Drive
    "drive"
14 / Google Photos
    "google photos"
15 / Hubic
    "hubic"
16 / JottaCloud
    "jottacloud"
17 / Koofr
    "koofr"
18 / Local Disk
    "local"
19 / Mail.ru Cloud
    "mailru"
20 / Mega
    "mega"
21 / Microsoft Azure Blob Storage
    "azureblob"
22 / Microsoft OneDrive
    "onedrive"
23 / OpenDrive
    "opendrive"
24 / Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH)
    "swift"
25 / Pcloud
    "pcloud"
26 / Put.io
    "putio"
27 / QingCloud Object Storage
    "qingstor"
28 / SSH/SFTP Connection
    "sftp"
29 / Transparently chunk/split large files
    "chunker"
30 / Union merges the contents of several remotes
    "union"
31 / Webdav
    "webdav"
32 / Yandex Disk
    "yandex"
33 / http Connection
    "http"
34 / premiumize.me
    "premiumizeme"
Storage>

如上所示,Rclone 支持多种存储,这里输入 11 ,即 FTP:

Storage> 11
** See help for ftp backend at: https://rclone.org/ftp/ **

FTP host to connect to
Enter a string value. Press Enter for the default ("").
Choose a number from below, or type in your own value
 1 / Connect to ftp.example.com
    "ftp.example.com"
host> 

之后会要求输入 host、 user、port、password 和 tls,这个根据实际情况设置即可。确认设置无误后,输入 y

Remote config
--------------------
[ftp]
type = ftp
host = 192.168.10.173
user = test
port = 21
pass = *** ENCRYPTED ***
--------------------
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y

FTP 配置完成后,输入 q 退出:

Current remotes:

Name                 Type
====                 ====
ftp                  ftp

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> q


3.2 配置 OSS


   

再添加 OSS 配置,名称定为 oss。受限于篇幅,OSS 配置我简单贴下:
rclone config
e/n/d/r/c/s/q> n
name> oss
Storage> 4 # S3
provider> 2 # Alibaba
env_auth> 1 # false
access_key_id> <your_access_key_id> # 输入 access_key_id
secret_access_key> <your_secret_access_key> # 输入 secret_access_key
endpoint> 1 # oss-cn-hangzhou.aliyuncs.com 按实际情况选择
acl> 1 # private 按实际情况选择
storage_class> 1 # 默认即可
Edit advanced config? (y/n) n # no 高级配置,这里没有配置
配置完成后,信息会保存到  $HOME/.config/rclone/rclone.conf。如果之后要变更配置信息,可以通过向导修改,也可以直接编辑该文件。


4. 实例


   

由于 FTP 是新部署的,目前还没有目录和文件,所以先上传些文件到 FTP
[root@localhost ~]# rclone copy /root/package ftp:package

上述命令会将 /root/package 下的文件上传到 FTP 的 package 目录(FTP 上目录不存在则创建)。通过  rclone ls 查看:

[root@rclone ~]# rclone ls ftp:
  6082560 package/Redis-x64-3.2.100.msi
  8799579 package/apache-maven-3.5.3-bin.tar.gz
  1016311 package/nginx-1.13.12.tar.gz
 36667596 package/zookeeper-3.4.12.tar.gz

可以看到,文件已上传到 FTP。现在将 FTP 中的文件同步到 OSS。执行以下命令:

[root@rclone ~]# rclone sync ftp: oss:rclone-oss

同步会花费一些时间,运行完成后,查看 oss 下的文件:

[root@rclone ~]# rclone ls oss:rclone-oss
  6082560 package/Redis-x64-3.2.100.msi
  8799579 package/apache-maven-3.5.3-bin.tar.gz
  1016311 package/nginx-1.13.12.tar.gz
 36667596 package/zookeeper-3.4.12.tar.gz

除了同步,Rclone 还提供了 mount 命令,允许将远程存储挂载到本地目录。不过进程会在前台运行,需要将其转到后台:

[root@rclone ~]# nohup rclone mount oss:rclone-oss /mnt/rclone-oss/ > /dev/null 2>&1 &

可以看到,OSS 已挂载到 /mnt/rclone-oss 下:

[root@rclone ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   36G  7.2G   29G  20% /
devtmpfs                 710M     0  710M   0% /dev
tmpfs                    722M     0  722M   0% /dev/shm
tmpfs                    722M  9.6M  712M   2% /run
tmpfs                    722M     0  722M   0% /sys/fs/cgroup
/dev/sda1               1014M  132M  883M  14% /boot
tmpfs                    145M     0  145M   0% /run/user/0
oss:rclone-oss           1.0P     0  1.0P   0% /mnt/rclone-oss

5. 写在后面


   

Rclone 是一个功能很强大的命令行工具,支持在多平台上使用。友好的配置向导与易懂的子命令操作方式都使得 Rclone 几乎没有上手成本。

如果在使用过程中遇到问题的话,除了 rclone --help 获取帮助,也可以查询 Rclone 的官方文档,资料非常齐全。


References

[1] GitHub: https://github.com/rclone/rclone
[2] Rclone Website: https://termux.com/https://rclone.org/
[3] Rclone – Sync Files Directories from Different Cloud Storagehttps://www.tecmint.com/rclone-sync-files-from-cloud-storage/

原文始发于微信公众号(阿拉平平):Rclone 使用教程:同步 FTP 文件到阿里云 OSS

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/288057.html

(0)
码上实战的头像码上实战

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!