Rclone 是一款的命令行工具,支持在不同对象存储、网盘间同步、上传、下载数据。虽然,现在有比较流行的可视Alist网盘管理,但是,多知道一些也没有坏处,以防备用。
搭建环境:本人基本都是采用的军哥的LNMP作为网站的环境,这里不在阐述如何搭建,网站内可以找到。
Rclone安装命令:
wget https://downloads.rclone.org/rclone-current-linux-amd64.zip
unzip rclone-current-linux-amd64.zip
chmod 0777 ./rclone-*/rclone
cp ./rclone-*/rclone /usr/bin/
rm -rf ./rclone-*
rclone config
可以看到每个数字代表了不同的网盘,我选者的是10:google drive
之后的 client id client secret 都不填,直接回车
use auto config 选择 n 然后会得到一个链接
这个链接复制到浏览器,登录自己的GG账号点同意,给出一段密码,将其复制到终端中,回车 然后输入 n y q。结束
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n
name> aria2down #随便填,后面要用到
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 (also Dreamhost, Ceph, Minio, IBM COS)
\ "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 / Microsoft Azure Blob Storage
\ "azureblob"
15 / Microsoft OneDrive
\ "onedrive"
16 / Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH)
\ "swift"
17 / Pcloud
\ "pcloud"
18 / QingCloud Object Storage
\ "qingstor"
19 / SSH/SFTP Connection
\ "sftp"
20 / Webdav
\ "webdav"
21 / Yandex Disk
\ "yandex"
22 / http Connection
\ "http"
Storage> 11 #选择11
Google Application Client Id - leave blank normally.
client_id> #留空(解决卡顿内存高的问题,可以添加自己网盘的id)
Google Application Client Secret - leave blank normally.
client_secret> #留空(解决卡顿内存高的问题,可以添加自己网盘的密钥
Scope that rclone should use when requesting access from drive.
Choose a number from below, or type in your own value
1 / Full access all files, excluding Application Data Folder.
\ "drive"
2 / Read-only access to file metadata and file contents.
\ "drive.readonly"
/ Access to files created by rclone only.
3 | These are visible in the drive website.
| File authorization is revoked when the user deauthorizes the app.
\ "drive.file"
/ Allows read and write access to the Application Data folder.
4 | This is not visible in the drive website.
\ "drive.appfolder"
/ Allows read-only access to file metadata but
5 | does not allow any access to read or download file content.
\ "drive.metadata.readonly"
scope> 1 #选择1
ID of the root folder - leave blank normally. Fill in to access "Computers" folders. (see docs).
root_folder_id> #留空
Service Account Credentials JSON file path - leave blank normally.
Needed only if you want use SA instead of interactive login.
service_account_file> #留空
Remote config
Use auto config?
* Say Y if not sure
* Say N if you are working on a remote or headless machine or Y didn't work
y) Yes
n) No
y/n> n #选择n
If your browser doesn't open automatically go to the following link: https://accounts.google.com/o/oauth2/auth.... #复制到浏览器打开,获取验证码
Log in and authorize rclone for access
Enter verification code> #填入上面获取到的验证码
Configure this as a team drive?
y) Yes
n) No
y/n> y #选择y
Fetching team drive list...
No team drives found in your account--------------------
[Rats]
client_id =
client_secret =
service_account_file =
token = {"access_token":"ya29.GltFBd7UJN2qrxdG8FnG_rMuB18ogb8QlujdL7glvXtfV"}
team_drive =
--------------------
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y #选择y
Current remotes:
Name Type
==== ====
aria2down drive
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退出
如果你要挂载的文件夹不存在,请先创建文件夹,例如我要创建在 /home/wwwroot/域名/Gdrive
mkdir -p /home/wwwroot/域名/Gdrive rclone mount ytb: /home/wwwroot/域名/Gdrive --allow-other &
2
#新建本地文件夹,路径自己定,即下面的LocalFolder
mkdir -p /home/wwwroot/域名/Gdrive
#挂载为磁盘
rclone mount DriveName:Folder LocalFolder --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --umask 000
DriveName
为初始化配置填的name
,Folder
为Google Drive
里的文件夹,LocalFolder
为VPS
上的本地文件夹。
挂载另外的一些命令说明方案:英文官方 地址
解决上传失败和内存占用高等问题
#该参数主要是上传用的
/usr/bin/rclone mount DriveName:Folder LocalFolder \
–umask 0000 \
–default-permissions \
–allow-non-empty \
–allow-other \
–transfers 4 \
–buffer-size 32M \
–low-level-retries 200
#如果你还涉及到读取使用,比如使用H5ai等在线播放,就还建议加3个参数,添加格式参考上面
–dir-cache-time 12h
–vfs-read-chunk-size 32M
–vfs-read-chunk-size-limit 1G
主要参数这里大概说下,具体自己根据vps配置进行调整。
–transfers:该参数控制最大同时传输任务数量,如果你cpu性能差,建议调低,但太低可能会影响多个文件同时传输的速度。
–buffer-size:该参数为读取每个文件时的内存缓冲区大小,控制rclone上传和挂载的时候的内存占用,调低点可以防止内存占用过高而崩溃,但太低可能会影响部分文件的传输速度。
–low-level-retries:该参数为传输文件没速度的时候重试次数,没速度的时候,单个会自动睡眠10ms起,然后再重试,不行,再睡眠更长一段时间,再重试,这样可以稍微加快文件上传进度
更加详细的介绍可以打开上边的官方地址看说明设置
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 copy /home/backup gdrive:backup (我自己设置的是:(GD:SFVIDEO)# 本地路径 配置名字:谷歌文件夹名字
### 文件下载
rclone copy gdrive:backup /home/backup
### 列表
rclone ls gdrive:backup
rclone lsl gdrive:backup # 比上面多一个显示上传时间
rclone lsd gdrive:backup # 只显示文件夹
### 新建文件夹
rclone mkdir gdrive:backup
### 挂载
rclone mount gdrive:mm /root/mm &
### 卸载
fusermount -u /root/mm
rclone配置文件存储位置 ~/.config/rclone/rclone.conf
其他的问题可以在GooGle上找寻,这里先到这把,另外在使用命令的时候最好先用一些不重要的文件做实验,以免造成不必要的损失。
自动启动:
wget https://www.vrrmr.net/Code/rcloned && vim rcloned
修改文件:
NAME="" #rclone name名,及配置时输入的Name
REMOTE='' #远程文件夹,Google Drive网盘里的挂载的一个文件夹
LOCAL='' #挂载地址,VPS本地挂载目录
设置自启:
mv rcloned /etc/init.d/rcloned
chmod +x /etc/init.d/rcloned
update-rc.d -f rcloned defaults
bash /etc/init.d/rcloned start
———————————-
添加一个一键安装代码:
wget https://www.vrrmr.net/Code/rclone_install.sh && bash rclone_install.sh rclone config #配置就按上边的就可以了
重启:systemctl restart rclone
停止:systemctl stop rclone
状态:systemctl status rclone
暂无评论内容