Rclone技巧 & 加载Google Drive到本地目录

本文关于Google Drive – 如果是加载Microsoft OneDrive加载到本地,参考本馆档案

使用RClone+Google Drive 最好有你自己的Google Drive Client ID & Secret. 查看这篇我之前写的文章。

安装RClone + Google Drive 实现自动备份,另外一篇

利用Rclone和Aria2配合做到下载后马上转移Google Drive的方法在这。

这里讲另外一种,就是 –

1- 下载并配置 RClone 和 Google Drive 配对, 参考本馆档案.

2- 安装 fuse

apt install -y fuse

3- 加载Google Drive到本地目录


# --copy-links - 显示软链接内容
# --no-gzip-encoding - 不使用 gzip-encoding
# --no-check-certificate - 不验证ssl证书
# --allow-other - 允许其它用户访问
# --allow-non-empty - 允许挂载目录非空
# --umask 000 - 覆写文件掩码为 000
# --vfs-cache-max-size 3G  可选, 如果本地硬盘空间太小的话
# --vfs-cache-max-age 6h   
### gd_omgd: 是我做rclone config时候自己取的名字
### _vps是google drive上的目录,也可以是根目录 gd_omgd:/

drivename='gd_omgd'
# ----------------------------
# 如果之前目录弄错了 - 应该放到/data/下面
# fusermount -qzu ~/${drivename} && rmdir ~/${drivename}
# ----------------------------
targetloc="/data/${drivename}"
mkdir -p ${targetloc} && ln -s ${targetloc} ~/${drivename} 

/usr/bin/rclone mount ${drivename}: ${targetloc} --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --umask 000 --vfs-cache-mode writes --daemon

# 或者指定cache size & age
#/usr/bin/rclone mount ${drivename}: ${targetloc} --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --umask 000 --vfs-cache-mode writes --vfs-cache-max-size 6G --vfs-cache-max-age 6h --daemon

# 如果本地硬盘很小, 可以 turn off cache
# mount root folder of remote drive
# (update-20200512) 谷歌云盘不允许这么做,会出错
#/usr/bin/rclone mount ${drivename}: ${targetloc} --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --umask 000 --vfs-cache-mode off --daemon

### 卸载
fusermount -qzu /data/${drivename}

值得注意的是,rclone mount 是不如 rclone sync/copy 鲁棒的,因为sync/copy会在出错的时候retry很多次。

开机自动加载 -方法1

参考这篇:

### 安装
cd /root
wget -N git.io/rcloned 
vi rcloned
  NAME="gd_omgd" #Rclone配置时填写的name
  REMOTE=''  #远程文件夹,网盘里的挂载的一个文件夹,留空为整个网盘(也可以是某个目录,如_vps)
  LOCAL='/root/GdriveOMGD'  #挂载地址,VPS本地挂载目录
  LOG="/$HOME/.rclone/rcloned.log"
mv rcloned /etc/init.d/rcloned
chmod +x /etc/init.d/rcloned
update-rc.d -f rcloned defaults # Debian/Ubuntu
bash /etc/init.d/rcloned start

### 管理
#开始挂载 
bash /etc/init.d/rcloned start
#停止挂载 
bash /etc/init.d/rcloned stop
#重新挂载 
bash /etc/init.d/rcloned restart
#查看日志 
tail -f /$HOME/.rclone/rcloned.log

### 卸载
bash /etc/init.d/rcloned stop
update-rc.d -f rcloned remove # Debian/Ubuntu
rm -f /etc/init.d/rcloned

开机自动加载 – 方法2 (推荐)

参考这篇:https://www.yunloc.com/562.html

drivename='gd_omgd'
# ----------------------------
# 如果之前目录弄错,应该放到/data下面
# fusermount -qzu ~/${drivename} && rmdir ~/${drivename}
# ----------------------------
targetloc="/data/${drivename}"
mkdir -p ${targetloc} && ln -s ${targetloc} ~/${drivename}

#以下是一整条命令,一起复制到SSH客户端运行 #不能带 --daemon 不然失败
cat > /etc/systemd/system/rclone_${drivename}.service <<EOF
[Unit]
Description=rclone_${drivename}

[Service]
User=root
# mount root folder of remote drive
# 根据磁盘大小设定 cache size (--vfs-cache-max-size 6G --vfs-cache-max-age 6h) 也可以只设定 max-age
# 如果用于bt下载和小硬盘的话, 建议比如Aria2当中concurrent download 变成1或2

# 本地硬盘如果够大的话
ExecStart=/usr/bin/rclone mount ${drivename}: ${targetloc} --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --umask 000 --vfs-cache-mode writes

[Install]
WantedBy=multi-user.target
EOF

重载system service

systemctl daemon-reload
# 启动(单次)
systemctl start rclone_${drivename}
# 设置开机启动:
systemctl enable rclone_${drivename}
# 停止、查看状态可以用:
systemctl stop rclone_${drivename}
systemctl status rclone_${drivename}

一些RClone的主要命令

rclone config - 以控制会话的形式添加rclone的配置,配置保存在.rclone.conf文件中

rclone copy - 将文件从源复制到目的地址,跳过已复制完成的
rclone copy /home/backup/file.zip gd_omgd:_vps/backup/
rclone copy /home/backup/some_folder google-drive:Sync/backup/some_folder
# --ignore-existing 可以忽略在网盘上已备份的文件,这相当于增量备份
rclone copy --ignore-existing /home/backup/some_folder google-drive:Sync/backup/some_folder

# move over / delete local
rclone move -v /downloads/ubuntu-20.04-live-server-amd64.iso gd_omgd:/_vps/cr1t

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 - 交互式查找重复文件,进行删除/重命名操作

5 thoughts on “Rclone技巧 & 加载Google Drive到本地目录”

  1. Pingback: 另外一种方法 – ccaa:Docker Aria2+文件管理器+VPS直接下载到GoogleDrive – 1024 & 4201

  2. Pingback: VPS加载Microsoft OneDrive到本地盘 – 1024 & 4201

  3. Pingback: Docker部署Aria2 Pro下载完自动转移到Google Drive – 1024 & 4201

  4. Pingback: Docker安装Transmission下载-可用于PT – 1024 & 4201

  5. Pingback: 自动备份Web+Mysql -> Rclone/GoogleDrive+FTP – 1024 & 4201

Leave a Reply