专栏首页对象存储COS使用rclone迁移FTP数据到COS
原创

使用rclone迁移FTP数据到COS

TOC

1、安装rclone

选择一台能访问外网的机器,通过下面命令安装rclone:

# curl https://rclone.org/install.sh | sudo bash
# rclone version
rclone v1.50.0
- os/arch: linux/amd64
- go version: go1.13.3

2、配置rclone访问ftp

可以通过rclone config来配置访问ftp,如下:

# rclone config
2019/10/31 03:20:01 NOTICE: Config file "/root/.config/rclone/rclone.conf" not found - using defaults
No remotes found - make a new one
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n
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
...
11 / FTP Connection
   \ "ftp"
...

选择11选项:

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"

输入ftp server地址:

host> myftpserver.com
FTP username, leave blank for current username, root
Enter a string value. Press Enter for the default ("").

输入已有的ftp userftp port信息:

user> ftpuser
FTP port, leave blank to use default (21)
Enter a string value. Press Enter for the default ("").
port>

输入ftp userpassword

FTP password
y) Yes type in my own password
g) Generate random password
y/g> y
Enter the password:
password:
Confirm the password:
password:

配置其他信息,很多都可以直接使用默认:

Use FTP over TLS (Implicit)
Enter a boolean value (true or false). Press Enter for the default ("false").
tls>
Edit advanced config? (y/n)
y) Yes
n) No
y/n> n
Remote config
--------------------
[ftp]
type = ftp
host = myftpserver.com
user = ftpuser
pass = *** ENCRYPTED ***
--------------------
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y
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、验证rclone访问ftp

使用rclone ls/lsf命令访问ftp,确认输出结果正确:

# rclone lsf ftp:
hadoop-deploy.sh
storage/
v4.20.17.log

# rclone ls ftp:
     4548 hadoop-deploy.sh
    24094 v4.20.17.log
    12022 storage/rook-ceph/1-operator.yaml
     4280 storage/rook-ceph/2-cluster.yaml
      416 storage/ceph-tools/mon-add.sh
      197 storage/ceph-tools/mon-remove.sh
      ...

4、配置rclone访问cos

与ftp配置一样,同样可以通过ftp config来配置cos,但我们也可以通过直接修改配置文件的方式来配置cos:

# vim ~/.config/rclone/rclone.conf
...
[cos]       ## 命名为:cos,也可以为其他名字
type = s3   ## 指定存储类型为:s3
provider = Other   ## 指定提供商为:Other
env_auth = false   ## 不从环境变量中获取密钥
access_key_id = AKIDygxxxxxxxxxxxzunx4T  ## 配置为cos的 secret_id
secret_access_key = tXu06xxxxxxxxxxFQP9  ## 配置为cos的 secret_key
endpoint = cos.ap-chengdu.myqcloud.com   ## 根据不同的region配置,这里我用的是:ap-chengdu

5、验证rclone访问cos

使用rclone ls/lsf命令访问cos,确认输出结果正确:

# rclone lsf cos:
mybackup1-1253766168/
mybackup2-1253766168/
pictures-cd-1253766168/
# rclone ls cos:pictures-cd-1253766168/
    43385 cos-test.jpg

6、使用rclone迁移ftp到cos

rclone支持copy命令,可以把源数据迁移到目的,命令格式如下:

# rclone -h
...
  copy            Copy files from source to dest, skipping already copied
...

copy模式只拷贝新增和变化的文件,多次执行并不会重复迁移相同的数据。

如下命令,把ftp上的storage目录下的文件都迁移到cos:

# rclone copy ftp:storage/ cos:mybackup1-1253766168/
# rclone ls cos:mybackup1-1253766168/
      416 ceph-tools/mon-add.sh
      197 ceph-tools/mon-remove.sh
    12022 rook-ceph/1-operator.yaml
     4280 rook-ceph/2-cluster.yaml
      ...

rclone copy会copy指定源目录下的所有文件,目的里并不会包含源目录名。

如果想包含目录名,在cos的目的路径下添加源目录名即可:

# rclone copy ftp:storage/ cos:mybackup1-1253766168/storage
# rclone ls cos:mybackup1-1253766168/
      416 storage/ceph-tools/mon-add.sh
      197 storage/ceph-tools/mon-remove.sh
    12022 storage/rook-ceph/1-operator.yaml
     4280 storage/rook-ceph/2-cluster.yaml
      ...

rclone copy支持参数实时显示传输统计 -P/--progress:

# rclone copy ftp:storage cos:anybackup-api-1253766168/storage -P
Transferred:   	         0 / 0 Bytes, -, 0 Bytes/s, ETA -
Errors:                 0
Checks:                37 / 37, 100%
Transferred:            0 / 0, -
Elapsed time:          0s

如上,如果数据之前copy过,再执行一遍并不会重复传输。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Android 各视图的大小

    剑行者
  • OpenRTB 3.0协议即将发布,全球广告格局或将改变

    本文转载自TopMarketing 今天的大新闻不只有苹果。 比如,业界著名的互动广告局(IAB)就发布了关于OpenRTB 3.0的征求意见公示。 ? 作为广...

    iCDO互联网数据官
  • 使用 Node.js 生成方便传播的图片

    本文使用「署名 4.0 国际 (CC BY 4.0)」许可协议,欢迎转载、或重新修改使用,但需要注明来源。 署名 4.0 国际 (CC BY 4.0)

    soulteary
  • 失去手臂五年后,这个仿生机械臂帮他重拾钢琴曲演奏

    允中 编译自 weforum.org 量子位 出品 | 公众号 QbitAI “为什么《星球大战》里面的很多角色都难逃断手?” 知乎上有个提问把这部电影称为《断...

    量子位
  • 【DB笔试面试741】在Oracle中,cluvfy工具的作用是什么?

    cluvfy(Cluster Verification Utility,集群检验工具),简称CVU,是随Oracle集群管理软件一起发布的检查工具。它的功能是对...

    小麦苗DBA宝典
  • 解读gobgp

    gobgp是github上一个开源的项目,顾名思义,是使用golang实现的bgp功能,性能被夸得不要不要的,所以很值得花时间了解一下。

    DifficultWork
  • 经验之谈

    刚开始接触python是在我大三上学期的时候,有一点C语言的基础。语言的基础其实在各类编程语言都是互通的,只是被包装的不一样,只要掌握一门语言的基础,学习其他语...

    佛系编程人
  • 「nodejs + docker + github pages 」 定制自己的 「今日头条」

    在闲暇之余,我们经常会逛各种社区,逛掘金看技术软文,逛虎扑看今日赛事,逛头条看热门时事,逛 91……

    null仔
  • 浏览器端rsa加密方案

    黒之染
  • 一篇文章来告诉你可视化是多么重要

    今天这一篇文章希望通过一个例子来告诉大家可视化或者说绘图是多么重要。在1973年,统计学家F.J. Anscombe造了四组非常神奇的数字,这四组数字具体有多神...

    张俊红

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动