阿拉平平
读完需要
分钟
速读仅需 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
3. 配置
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
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
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. 实例
[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 Storage: https://www.tecmint.com/rclone-sync-files-from-cloud-storage/
原文始发于微信公众号(阿拉平平):Rclone 使用教程:同步 FTP 文件到阿里云 OSS
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/288057.html