使用 Rclone 从 OneDrive 到 Google Drive 大量拷贝文件

Rclone 是一个命令行工具, 用于在不同网盘和对象存储之间同步数据.

本文主要介绍 rclone copy 的用法.

注: Rclone 支持 50 多种网盘和对象存储, 你能想到的国外的网盘基本都支持, 这是受支持列表, 操作方法都是一样的: https://rclone.org/overview/, 如果你想拷贝别的网盘的数据也可以参考下.

注意: 进行文件对拷会消耗服务器大量流量, 推荐使用不限流量的服务器,我这里使用的是 OVH.CA $0.97 传家宝.

准备工作

请切换到 root 用户进行操作

sudo -i

更新软件包

apt update && apt upgrade -y

安装 rclone, 这里使用官方的一键脚本

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

配置 rclone

输入 rclone config 开始配置

输入 n 选择 New Remote (添加新的远程路径)

为 OneDrive 输入 onedrive

输入 31 选择 Microsoft OneDrive (你那里不一定是, 输入你那里显示 OneDrive 的序号即可)

下一步直接敲两个回车使用默认ID或者创建自己的 Client 客户端, 这里附上官方教程:

https://rclone.org/onedrive/

对于大多数人, 在下一步输入 1 选择 “Microsoft Cloud Global”, 如果你是世纪互联运营的 OneDrive 中国版, 输入 4

显示 Edit advanced config 的时候输入 n

下一步是问你是否使用本机进行浏览器页面验证, 因为我们是在远程服务器上操作, 选择 n

在你的电脑上使用 curl https://rclone.org/install.sh | sudo bash 安装 rclone

打开命令行输入 rclone authorize "onedrive", 登录要同步的账号进行授权, 然后复制命令行输出的内容, 从 {"access_token" 开始, 一直到 <---End paste 的左箭头之前.

把复制的内容粘贴到服务器的命令行中, 在下一步选择类型输入 1, (OneDrive Personal or Business)

一直回车即可.

然后输入 n, 设置名称为 googledrive, 按照提示添加即可, 过程类似, 也需要到电脑上操作获取授权 token.

需要注意的是, 如果你使用团队盘, 需要在授权账号前先为你用于授权 rclone 到账号添加团队盘成员.
至少要为使用 rclone 的账号授权为 content manager (内容管理员)

拷贝文件

两个云盘都设置完成后, 在命令行输入

rclone copy onedrive: googledrive:

// 被拷贝的对象在前, 拷贝目的地在后

如果你想拷贝指定目录, 例如 /data/backup/data

rclone copy onedrive:/data googledrive:/backup/data

注意: 如果你只是对拷文件, 没有任何必要将云盘挂载到本地

开启一个新的 SSH 窗口, 输入 top / htop / btop 任意一个观察运行状态, 确保负载不会影响服务器正常运行

看下面两个地方就可以 (左图里是 btop, 其他两个类似右图, 的整体负载显示在最上方)

如果你看到占用极低, 并且你对你的服务器很有信心, 可以增加参数 --transfers 来指定同时传输文件个数

例如 rclone copy onedrive: googledrive: --transfers=10

后台拷贝

因为 Linux 默认在结束 SSH 会话后会关闭通过命令行前台运行的程序, 所以我们需要借助 screen 软件包设置自动运行. (每行分别输入)

apt install screen -y
screen -S transfer

第二行命令会开启一个叫 transfer 的会话, 输入后会自动切换过去

在这个会话里再次输入 rclone 的命令, 会继续之前的操作

rclone copy onedrive: googledrive: --transfers=10

现在你就可以关闭当前的 SSH 会话了, 如果你不放心, 可以重新登录服务器运行 btop / htop / top 查询一下 rclone 程序是否还在高负载运行.

当你返回来想继续操作的时候, 输入 screen -r transfer 恢复这个用于 rclone 的回话

如果你忘了了会话名称, 输入 screen -ls 查询当前所有 screen 开启的会话

输入 exit 可以退出 screen 开启的会话回到主机的命令行

科普一下: 如果你在主机的命令行直接执行 exit, 你会退出当前 ssh 会话 (例如你用 root 登录的, exit 就退出 ssh 了, 你用 debian 用户(非特权用户)登录的, 通过 sudo-i 切换到root, 就是从 root 退回到非特权用户), screen 里面的 ssh 会话同理.

注意: 因为 Google Drive 的限制, 你的每个账号在 24 小时之内最多只能复制约 750GB 数据, 但如果是团队盘, 你可以通过分享给多个账号(包括 Gmail 个人用户)的方式, 分别计算 750GB.


ref. https://rclone.org/commands

ref. https://blueskyxn.com/

暂无评论

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇