Linux 使用 Rclone 挂载 Google Drive
Rclone 是一个开源的命令行的文件同步程序,它能和一些网盘或对象存储对接,实现文件同步。对于只有命令行的 Linux 服务器来说,使用 Rclone 可以直接通过命令行使用 Google Drive 和 OneDrive。
因为 Google Drive 无法在大陆地区访问,如果要使用 Rclone 挂载 Google Drive 就需要使用香港或国外的服务器。
安装
这里会用到 curl,如果没有 curl 的话,需要先安装 curl。
安装 Rclone:
curl https://rclone.org/install.sh | sudo bash
你也可以直接下载脚本执行安装。
配置
输入:
rclone config
初始化配置。
第一次初始化可能会看到如下内容:
2020/03/04 17:17:28 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
初始化,其中的 name
可以随便填,然后是选择要对接的云存储,如下:
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 / In memory object storage system.
\ "memory"
17 / JottaCloud
\ "jottacloud"
18 / Koofr
\ "koofr"
19 / Local Disk
\ "local"
20 / Mail.ru Cloud
\ "mailru"
21 / Mega
\ "mega"
22 / Microsoft Azure Blob Storage
\ "azureblob"
23 / Microsoft OneDrive
\ "onedrive"
24 / OpenDrive
\ "opendrive"
25 / Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH)
\ "swift"
26 / Pcloud
\ "pcloud"
27 / Put.io
\ "putio"
28 / QingCloud Object Storage
\ "qingstor"
29 / SSH/SFTP Connection
\ "sftp"
30 / Sugarsync
\ "sugarsync"
31 / Transparently chunk/split large files
\ "chunker"
32 / Union merges the contents of several remotes
\ "union"
33 / Webdav
\ "webdav"
34 / Yandex Disk
\ "yandex"
35 / http Connection
\ "http"
36 / premiumize.me
\ "premiumizeme"
可以直接输入前面的序号,我这里要挂载 Google Drive 可以输入 13
。
lient_id
可以为空,直接回车。
client_secret
也可以为空,按回车继续。
然后是设置访问的范围:
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"
可以选择第 1 项,直接输入 1
。
root_folder_id
也可以为空,回车继续。
service_account_file
也可以为空。
Edit advanced config
可以输入 n
。
Use auto config
(自动配置)可以输入 n
。
这里会显示一个 URL,复制 URL 在已登录 Google 账号的浏览器中访问授权,如下:
Please go to the following link: https://accounts.google.com/o/oauth2/auth?access_type=offline&client_id=202264815644.apps.googleusercontent.com&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&response_type=code&scope=https%3A2Fwww.googleapis.com%2Fauth%2Fdrive&state=u0ZFmyfDgjqoPBmHLCwDXw
Log in and authorize rclone for access
授权后网页上会出现一个验证码,复制验证码到 Enter verification code
区域粘贴。
Configure this as a team drive
可以输入 n
。
最后输入 q
退出:
urrent remotes:
Name Type
==== ====
google 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
挂载
创建一个用来挂载的目录:
mkdir /google
我在根目录下创建了一个 google
目录用来挂载。
挂载的命令是:
rclone mount name: /google --allow-other --allow-non-empty --vfs-cache-mode writes
其中的 name
就是配置名称,/google
就是用来挂载的本地目录。例如我的配置名称是 google
,我要挂载到根目录下的 google
目录,我可以使用:
rclone mount google: /google --allow-other --allow-non-empty --vfs-cache-mode writes
如果在挂载的时候出现了类似下面的提示:
2020/03/04 18:58:16 Fatal error: failed to mount FUSE fs: fusermount: exec: "fusermount": executable file not found in $PATH
需要安装 fuse。
CentOS/Fedora 安装 fuse:
yum install -y fuse
Ubuntu/Debian 安装 fuse:
apt install -y fuse
如果挂载的时候没有任何显示也无法操作,可以再开一个远程窗口,输入:
df -h
查看磁盘统计信息,如果出现了挂载目录的磁盘信息说明挂载成功,如下:
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 1.3G 0 1.3G 0% /dev
tmpfs 1.3G 328K 1.3G 1% /dev/shm
tmpfs 1.3G 126M 1.1G 11% /run
tmpfs 1.3G 0 1.3G 0% /sys/fs/cgroup
/dev/vda1 37G 4.7G 31G 14% /
tmpfs 250M 0 250M 0% /run/user/0
google: 15G 12G 3.9G 75% /google
我这里的 Google Drive 就挂载在根目录下的 google
目录。
挂载后可以像操作本地目录一样操作 Google Drive,上传和下载文件可以直接拷贝。
版权声明:本文为原创文章,版权归 Mr. Ma's Blog 所有,转载请联系博主获得授权。
本文地址:https://www.misterma.com/archives/860/
如果对本文有什么问题或疑问都可以在评论区留言,我看到后会尽量解答。
2022/08/23 21:32:35 mount helper error: fusermount: failed to access mountpoint /google3: Transport endpoint is not connected
2022/08/23 21:32:35 Fatal error: failed to mount FUSE fs: fusermount: exit status 1
卸载重装了fuse
你的服务器是 OpenVZ 还是 KVM?OpenVZ 的服务器可能无法挂载
2022/08/23 21:32:35 mount helper error: fusermount: failed to access mountpoint /google3: Transport endpoint is not connected
2022/08/23 21:32:35 Fatal error: failed to mount FUSE fs: fusermount: exit status 1
====
卸载重装FUSE了,也不行
rclone mount google: /google --allow-other --allow-non-empty --vfs-cache-mode writes
返回:
2022/07/04 05:37:06 mount helper error: fusermount: unknown option 'nonempty'
2022/07/04 05:37:06 Fatal error: failed to mount FUSE fs: fusermount: exit status 1
有没有安装 fuse?
汇报:之前安装了fuse ,也挂载成功了,后来重启了服务器就挂不上了; 然后不断尝试也是失败如上错误;
===
刚才经你提醒,我删除了fuse 再次安装 ,又删了【aliyundrive-fuse】 https://github.com/messense/aliyundrive-fuse#readme 才行,恢复了。
感谢
大佬你好,根据你的教程,我到挂载步骤时报错,你看看怎么回事
[root@no-1 ~]# rclone mount google: /google --allow-other --allow-non-empty --vfs-cache-mode writes
2021/09/16 12:07:10 Failed to create file system for "google:": didn't find section in config file
你创建配置文件的时候填写的是什么名称?也就是第一步填写 name 你填写的是否是 google?