(开放FTP webdav等)centos利用rclone挂载Googledrive、onedrive当硬盘且利用Aria2离线下载后自动转移附部分rclone命令

安装 ARIA2

安装命令

安装前先安装 unzip 解压工具包和 wget 下载工具

unzip 命令

yum install zip unzip

wget 命令

yum -y install wget
mkdir /home/Download
wget -N –no-check-certificate <http://pan1.pan>."***".net/%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%8E%AF%E5%A2%83/sh/aria2.sh
chmod +x aria2.sh

安装完后运行 ./aria2.sh

配置 自动更新 BT-Tracker服务器

更改下载目录为 /home/Download

安装 rclone

首先需要在本地电脑也下载 rclone (用于获取 OneDrive 登录 TOKEN , 因为过程当中会打开网页,登录 OneDrive 由于 SSH 配置是无法看到网页的)

下载地址:https://rclone.org/downloads/ 然后解压出来,比如我们解压到 C 盘,文件夹命名 rclone,此时点击 Win+R,然后输入 cmd,确定。再输入以下命令:

cd c:\\rclone
rclone authorize “onedrive”

会出现以下信息:

c:\\rclone>cd /c:\\rclone
c:\\rclone>rclone authorize “onedrive”
Choose OneDrive account type?
* Say b for a OneDrive business account
* Say p for a personal OneDrive account
b) Business
p) Personal
b/p> b <== (这里 个人账号选 p 工作账号选 b 因为我们是 OneDrive Business)
If your browser doesn’t open automatically go to the following link: <http://127>.
0.0.1:53682/auth <== (这里会打开网页 登录你的 OneDrive 账号即可)
Log in and authorize rclone for access
Waiting for code…
Got code <== (这里是返回你的 TOKEN)
Paste the following into your remote machine —>
{“access_token”:”eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImlCakwxUmNxemhpeTR
mcHhJeGRacW9oTTJZayIsImtpZCI6ImlCakwxUmNxemhpeTRmcHhJeGRacW9oTTJZayJ9.eyJhdWQiOi
JodHRwczovL2FwaS5vZmZpY2UuY29tL2Rpc2NvdmVyeS8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3
dzLm5ldC8zOWE2Y2E2MS05OGRjLTRkY2MtYjU5Mi1kM2JhYzYxNDkzOTQvIiwiaWF0IjoxNTI1Mjc2OD
…
98JnWA_VvhIUeW98RvBSAA”,”expiry”:”2018-05-03T01:04:55.9347103+08:00″}

我们所需要的就是下面绿色区域中间的内容 {“access_token”:” …. “expiry”:”2018-08-18T01:04:55.9347103+08:00″}粘贴文本到新建的记事本保存好。

vps 安装和配置 rclone

1.安装命令

yum -y update
yum -y install fuse
curl <https://rclone.org/install.sh> | sudo bash

2.安装完成开始配置 rclone

配置 rclone 命令:

rclone config

会出现以下信息:

[root@MeiamOS ~]# rclone config
No remotes found – make a new one
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n
name> OneDrive <== (这里输入挂在项目的名字)
Type of storage to configure.
Choose a number from below, or type in your own value
1 / Alias for a existing remote
\\ “alias”
2 / Amazon Drive
\\ “amazon cloud drive”
3 / Amazon S3 Compliant Storage Providers (AWS, Ceph, Dreamhost, IBM COS, Minio)
\\ “s3”
4 / Backblaze B2
\\ “b2”
5 / Box
\\ “box”
6 / Cache a remote
\\ “cache”
7 / Dropbox
\\ “dropbox”
8 / Encrypt/Decrypt a remote
\\ “crypt”
9 / FTP Connection
\\ “ftp”
10 / Google Cloud Storage (this is not Google Drive)
\\ “google cloud storage”
11 / Google Drive
\\ “drive”
12 / Hubic
\\ “hubic”
13 / Local Disk
\\ “local”
14 / Mega
\\ “mega”
15 / Microsoft Azure Blob Storage
\\ “azureblob”
16 / Microsoft OneDrive
\\ “onedrive”
17 / Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH)
\\ “swift”
18 / Pcloud
\\ “pcloud”
19 / QingCloud Object Storage
\\ “qingstor”
20 / SSH/SFTP Connection
\\ “sftp”
21 / Webdav
\\ “webdav”
22 / Yandex Disk
\\ “yandex”
23 / http Connection
\\ “http”
Storage> 16 <== (这里选择 所需要挂在类型的 ID 上面是可以挂在网盘的列表)
Microsoft App Client Id – leave blank normally.
client_id> <== (回车留空)
Microsoft App Client Secret – leave blank normally.
client_secret> <== (回车留空)
Remote config
Choose OneDrive account type?
* Say b for a OneDrive business account
* Say p for a personal OneDrive account
b) Business
p) Personal
b/p> b <== (我们的账号是 OneDrive Business 账号所以选择 b)
Use auto config?
* Say Y if not sure
* Say N if you are working on a remote or headless machine
y) Yes
n) No
y/n> n <== (这里选择 N )
For this to work, you will need rclone available on a machine that has a web browser available.
Execute the following on your machine:
rclone authorize “onedrive”
Then paste the result below:
result> {“access_token”:””,”expiry”:””} <== (这里贴入刚才获取 TOKEN)
——————–
[OneDrive]
type = onedrive
client_id =
client_secret =
token = {“access_token”:””,”expiry”:”2018-08-18T22:56:29.794396289-04:00″}
——————–
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y <== (这里选择 Y 确定保存 TOKEN )
Current remotes:

Name Type
==== ====
OneDrive onedrive
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 <== (这里选择 q 退出配置 )
[root@MeiamOS ~]#
继续输入命令进行挂载
#安装 fuse
yum -y install fuse #创建挂载目录
mkdir -p /home/onedrive #挂载
rclone mount remote:path/to/files /home/onedrive #如果需要后台保持运行,使用下面的命令
nohup rclone mount remote:path/to/files /home/onedrive &

解释下上面的参数:

remote:远程名,之前我们设置的是 onedrive
path/to/files:远程文件路径(也就是 Onedrive 路径),可设置为/
/home/onedrive:本地磁盘路径

不出问题的情况下,输入df -h就可以看到 Onedrive 成功挂载。

设置自启动挂载脚本

1、下载 RCLOAD 自启动挂载脚本:

wget -N –no-check-certificate <http://pan1.pan>."***".net/%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%8E%AF%E5%A2%83/sh/rcloned
vim rcloned

2、修改 RCLOAD 自启动脚本关联目录

NAME=”” #rclone name 名,及配置时输入的 Name

REMOTE=” #远程文件夹,OneDrive 网盘里的挂载的一个文件夹

LOCAL=” #挂载地址,VPS 本地挂载目录

如果你的下载目录和我们一样就不用改

3、设置 RCLOAD 自动启动(脚本必须放到/etc/init.d/中)

mv rcloned /etc/init.d/rcloned
chmod +x /etc/init.d/rcloned
chkconfig rcloned on

#dabian中是sysv-rc-conf代替了(apt install sysv-rc-conf)

#sysv-rc-conf打开操作界面, “X”表示开启该服务。 用Ctrl+N翻下一页,用Ctrl+P翻上一页,用Q退出。

bash /etc/init.d/rcloned start

4、给 ARIA2 添加下载完成移动到网盘脚本

cd /root/.aria2/
wget -N –no-check-certificate <http://pan1.pan>."***".net/%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%8E%AF%E5%A2%83/sh/move.sh
chmod +x move.sh
echo “on-download-complete=/root/.aria2/move.sh” >>aria2.conf

注意:

如果发现无法转移,请去aria2.conf中查看最后一句是否含有引号,有则删除然后重启Aria2

如果你的目录和教程中不一样请在 move.sh 中设定

RCLOAD 启动停止命令

bash /etc/init.d/rcloned start
bash /etc/init.d/rcloned stop

查看挂载磁盘

df -h

如果出现硬盘,就大功告成啦!

附上部分命令

Rclone 配置与使用指南

配置管理

  • rclone config: 进入交互式配置选项,进行添加、删除、管理网盘等操作。
  • rclone config file: 显示配置文件的路径,一般配置文件在 /$HOME/.config/rclone/rclone.conf
  • rclone config show: 显示配置文件信息。

谷歌云盘对拷

可以实现两个 Google Drive 之间对拷备份文件,不占用硬盘。在新建好 rclone 的配置文件后,使用以下命令即可:

rclone copy gdrive1: gdrive2:

本地数据备份

自己 VPS 上的网站数据想备份到其他 VPS 或者网盘内,其实也很简单。在建立好 rclone 的配置文件后,使用以下命令即可:

rclone sync /本地绝对路径 dest:path

小技巧

复用配置文件

rclone 配置文件存储位置 ~/.config/rclone/rclone.conf,可以保存里面的内容,在新电脑上直接用这个配置文件即可。

详细使用

操作命令

rclone 命令的语法格式:

Syntax: [options] subcommand <parameters> <parameters...>

常用的 rclone 命令有:

  • rclone config: 以控制会话的形式添加 rclone 的配置,配置保存在 .rclone.conf 文件中。
  • rclone copy: 将文件从源复制到目的地址,跳过已复制完成的。
  • rclone sync: 将源数据同步到目的地址,只更新目的地址的数据。
  • rclone move: 将源数据移动到目的地址。
  • rclone delete: 删除指定路径下的文件内容。
  • rclone purge: 清空指定路径下所有文件数据。
  • rclone mkdir: 创建一个新目录。
  • rclone rmdir: 删除空目录。
  • rclone check: 检查源和目的地址数据是否匹配。
  • rclone ls: 列出指定路径下所有的文件以及文件大小和路径。
  • rclone lsd: 列出指定路径下所有的目录/容器/桶。
  • rclone lsl: 列出指定路径下所有文件以及修改时间、文件大小和路径。
  • rclone md5sum: 为指定路径下的所有文件产生一个 md5sum 文件。
  • rclone sha1sum: 为指定路径下的所有文件产生一个 sha1sum 文件。
  • rclone size: 获取指定路径下,文件内容的总大小。
  • rclone version: 查看当前版本。
  • rclone cleanup: 清空 remote。
  • rclone dedupe: 交互式查找重复文件,进行删除/重命名操作。

命令详解

rclone config

开启一个交互式的配置会话。命令格式如下:

rclone config

rclone copy

将文件从源复制到目的地址,跳过已复制完成的。命令格式如下:

rclone copy source:sourcepath dest:destpsth

说明:

  • rclone copy 复制总是指定路径下的数据;而不是当前目录。
  • -no-traverse 标志用于控制是否列出目的地址目录。

rclone sync

将源数据同步到目的地址,只更新目的地址的数据。命令格式如下:

rclone sync source:path dest:path

说明:

  • 同步数据时,可能会删除目的地址的数据;建议先使用 -dry-run 标志来检查要复制、删除的数据。
  • 同步数据出错时,不会删除任何目的地址的数据。
  • rclone sync 同步的始终是 path 目录下的数据,而不是 path 目录。(空目录将不会被同步)

rclone move

将源数据移动到目的地址。命令格式如下:

rclone move source:path dest:path

说明:

  • 同步数据时,可能会删除目的地址的数据;建议先使用 -dry-run 标志来检查要复制、删除的数据。

rclone purge

清空 path 目录和数据。命令格式如下:

rclone purge remote:path

说明:

  • 此命令,include/exclude 过滤器失效。
  • 删除 path 目录下部分数据,请使用 rclone delete 命令。

rclone mkdir

创建 path 目录。命令格式如下:

rclone mkdir remote:path

rclone rmdir

删除一个空目录。命令格式如下:

rclone rmdir remote:path

说明:

  • 不能删除非空的目录,删除非空目录请使用 rclone purge

rclone check

检查源和目标地址文件是否匹配。命令格式如下:

rclone check source:path dest:path

说明:

  • -size-only 标志用于指定,只比较大小,不比较 MD5SUMs。

rclone ls

列出指定 path 下,所有的文件以及文件大小和路径。命令格式如下:

rclone ls remote:path

rclone lsd

列出指定 path 下,所有目录、容器、桶。命令格式如下:

rclone lsd remote:path

rclone delete

删除指定目录的内容。命令格式如下:

rclone delete remote:path

说明:

  • 不同于 rclone purgerclone delete 可使用 include/exclude 过滤器选择删除文件内容。

示例

删除文件大小大于 100M 的文件:

rclone delete remote:path --max-size 100M

按文件大小删除

rclone --min-size 100M lsl remote:path                  # 使用rclone lsl 列出大于100M的文件
rclone --dry-run --min-size 100M delete remote:path    # 使用--dry-run 检查将要被删除的文件

按日期删除

rclone delete backup:/备份/ --min-age 10d
#这个命令会删除backup:/git备份/actions中所有10天前的文件。请注意,rclone delete命令只会删除文件,不会删除空的目录。如果你也想删除空的目录,你可以添加--rmdirs选项:

rclone delete backup:/备份/ --min-age 10d --rmdirs

使用 rclone delete 进行文件删除

rclone --min-size 100M delete remote:path

rclone size

获取指定 path 下所有数据文件的总大小。命令格式如下:

rclone size remote:path

rclone serve

rclone serve 可以将挂载的项目空间转化成http ftp webdav smb等等协议

rclone serve ftp path: –addr 10.10.10.10:21 –user 账号 –pass 密码

rclone serve ftp path: --addr 10.10.10.10:21 --user 账号 --pass 密码
rclone serve http path: --addr 10.10.10.10:8888
rclone serve webdav path: --addr 10.10.10.10:8888


PS:bt机器rc.local自启动【1.53.3】:

sleep 5
nohup rclone serve ftp apple_cms1: --addr 10.10.10.10:8881 --user 用户名 --pass 密码 >/log/apple_cms1.log 2>&1 &
sleep 5
nohup rclone serve ftp tuchuang1: --addr 10.10.10.10:8882 --user 用户名 --pass 密码 >/log/tuchuang1.log 2>&1 &
sleep 5
nohup rclone serve ftp b2-588file: --addr 10.10.10.10:8883 --user root --pass 密码 >/log/rclone_ftp_b2-588file.log 2>&1 &
leep 5
nohup rclone serve ftp od-588-1: --addr 10.10.10.10:8884 --user root --pass 密码 >/log/rclone_ftp_od-588-1.log 2>&1 &
leep 5
nohup rclone serve ftp tuchuang2: --addr 10.10.10.10:8885 --user root --pass 密码 >/log/rclone_ftp_tuchuang2.log 2>&1 &

开启官方GUI管理界面

rclone rcd --rc-web-gui

这个命令会下载并在Web浏览器中显示GUI1。

rclone serve参数

### Server Options

- **`-addr string`**: 指定服务器绑定的 IP 地址和端口。例如 `-addr 1.2.3.4:8000` 或 `-addr :8080` 监听所有 IP。默认只监听 localhost。可以使用端口 `:0` 让操作系统选择可用端口。

### Authentication

- **`-user string`**: 设置用于身份验证的用户名。默认是 `anonymous`。
- **`-pass string`**: 设置用于身份验证的密码。空值允许任何密码。

### VFS - Virtual File System

- **`-dir-cache-time duration`**: 控制目录条目在缓存中保留的时间。默认是 `5m0s`(5 分钟)。
- **`-poll-interval duration`**: 轮询更改的时间间隔。必须小于 `-dir-cache-time`。仅在支持的远程存储上有效。设置为 `0` 以禁用。默认是 `1m0s`(1 分钟)。
- **`-no-checksum`**: 上传/下载时不比较校验和。
- **`-no-modtime`**: 不读/写修改时间(可以加快操作速度)。
- **`-no-seek`**: 不允许在文件中查找。
- **`-read-only`**: 只读挂载。

### VFS File Buffering

- **`-buffer-size SizeSuffix`**: 确定用于预缓冲数据的内存量。每个打开的文件将尝试在内存中保持指定量的数据。默认是 `128M`。

### VFS File Caching

- **`-cache-dir string`**: 指定 rclone 用于缓存的目录。
- **`-vfs-cache-mode CacheMode`**: 控制 VFS 缓存模式。可选值为 `off`、`minimal`、`writes`、`full`。默认是 `off`。
- **`-vfs-cache-max-age duration`**: 缓存对象的最大年龄。默认是 `1h0m0s`(1 小时)。
- **`-vfs-cache-max-size SizeSuffix`**: 缓存对象的最大总大小。默认是 `off`。
- **`-vfs-cache-poll-interval duration`**: 轮询缓存中过期对象的时间间隔。默认是 `1m0s`(1 分钟)。
- **`-vfs-write-back duration`**: 使用缓存时,文件在最后一次使用后写回的时间。默认是 `5s`(5 秒)。

### VFS Performance

- **`-vfs-read-ahead SizeSuffix`**: 使用缓存模式 `full` 时,额外读取超过 `-buffer-size` 的数据。
- **`-vfs-read-chunk-size SizeSuffix`**: 读取源对象的块大小。默认是 `128M`。
- **`-vfs-read-chunk-size-limit SizeSuffix`**: 如果大于 `-vfs-read-chunk-size`,则在每次读取块后将块大小加倍,直到达到限制。`off` 表示无限制。默认是 `off`。
- **`-vfs-read-wait duration`**: 在查找前等待顺序读取的时间。默认是 `20ms`。
- **`-vfs-write-wait duration`**: 在给出错误前等待顺序写入的时间。默认是 `1s`(1 秒)。

### VFS Case Sensitivity

- **`-vfs-case-insensitive`**: 如果文件名未找到,查找不区分大小写的匹配项。默认值取决于操作系统:Windows 和 macOS 为 `true`,其他为 `false`。

### Auth Proxy

- **`-auth-proxy string`**: 指定一个程序,用于根据身份验证动态生成后端配置。

### FTP Server Options

- **`-passive-port string`**: 使用的被动端口范围。默认是 `30000-32000`。
- **`-public-ip string`**: 为被动连接广告的公共 IP 地址。
- **`-dir-perms FileMode`**: 目录权限。默认是 `0777`。
- **`-file-perms FileMode`**: 文件权限。默认是 `0666`。
- **`-gid uint32`**: 覆盖文件系统设置的 gid 字段。
- **`-uid uint32`**: 覆盖文件系统设置的 uid 字段。
- **`-umask int`**: 覆盖文件系统设置的权限位。默认是 `18`。

### Usage


```shell
rclone serve ftp remote:path [flags]
```

此外,还有一个名为Rclone Browser的开源项目,它提供了一个跨平台的GUI,可以让你更方便地使用rclone管理和同步云存储上的数据

💡 serve命令相关文档:https://rclone.org/commands/rclone_serve_ftp/
更多 rclone 命令,详见http://rclone.org/commands/


欢迎指出任何有错误或不够清晰的表达,可以在下面评论区评论。

×

喜欢就点赞,疼爱就打赏

//