安装
- Linux Rclone官方提供了一键安装脚本:
curl https://rclone.org/install.sh | bash
apt install -y fuse3
- Win
scoop install rclone
#cd C:\Users\Administrator\scoop\apps\rclone
#dir
配置
第一次配置
在终端输入 rclone config 进行配置
rclone config - 进入交互式配置选项,进行添加、删除、管理网盘等操作。
详细操作参见:《Rclone 安装配置教程》
再次重复配置
- 备份
rclone config file - 显示配置文件的路径,一般配置文件在 ~/.config/rclone/rclone.conf
rclone config show - 显示配置文件内容,复制备份
- 恢复
mkdir -p ~/.config/rclone
cat > ~/.config/rclone/rclone.conf <<EOF
《rclone.conf配置文件内容》
EOF
指定rclone配置文件启动
默认配置:/root/.config/rclone/rclone.conf
--config /root/.config/rclone/rclone.conf
#例如
rclone lsd gd_share: --config=~/.config/rclone/rclone.conf
启动
rclone常用命令
### 文件上传
rclone copy /home/backup gdrive:backup # 本地路径 配置名字:网盘文件夹路径
### 文件下载
rclone copy gdrive:backup /home/backup # 配置名字:网盘文件夹路径 本地路径
### 新建文件夹
rclone mkdir gdrive:backup # 配置名字:网盘文件夹路径
### 获取文件夹大小
rclone size gdrive:backup # 配置名字:网盘文件夹路径
### 列表
rclone ls gdrive:backup
rclone lsl gdrive:backup # 比上面多一个显示上传时间
rclone lsd gdrive:backup # 只显示文件夹
### 挂载
rclone mount gdrive:mm /root/mm &
### 卸载
fusermount -u /root/mm
#### 其他 ####
rclone config - 以控制会话的形式添加rclone的配置,配置保存在.rclone.conf文件中。
rclone copy - 将文件从源复制到目的地址,跳过已复制完成的。
rclone sync - 将源数据同步到目的地址,只更新目的地址的数据。 –-dry-run标志来检查要复制、删除的数据
rclone move - 将源数据移动到目的地址,如果要在移动后删除空源目录,请加上 --delete-empty-src-d
rclone delete - 删除指定路径下的文件内容。
rclone purge - 清空指定路径下所有文件数据。
rclone mkdir - 创建一个新目录。
rclone rmdir - 删除空目录。
rclone rmdirs - 删除指定灵境下的空目录。如果加上 --leave-root 参数,则不会删除根目录。
rclone check - 检查源和目的地址数据是否匹配。
rclone ls - 列出指定路径下所有的文件以及文件大小和路径。
rclone lsd - 列出指定路径下所有的目录/容器/桶。
rclone lsl - 列出指定路径下所有文件以及修改时间、文件大小和路径。
rclone lsf - 列出指定路径下所有文件和目录
rclone md5sum - 为指定路径下的所有文件产生一个md5sum文件。
rclone sha1sum - 为指定路径下的所有文件产生一个sha1sum文件。
rclone size - 获取指定路径下,文件内容的总大小。.
rclone version - 查看当前版本。
rclone cleanup - 清空remote。
rclone dedupe - 交互式查找重复文件,进行删除/重命名操作。
fusermount -qzu 挂载网盘的文件夹绝对路径 - 取消挂载网盘,不用了以后一定要取消哦。
单次任务:移动、复制、同步
- 命令格式
# 本地到网盘
rclone [copy/sync/move] <本地路径> <网盘名称:路径> [参数] [参数]
# 网盘到本地
rclone [copy/sync/move] <网盘名称:路径> <本地路径> [参数] [参数]
# 网盘到网盘
rclone [copy/sync/move] <网盘名称:路径> <网盘名称:路径> [参数] [参数]
rclone copy
- 实现效果: 将文件从源复制到目的地址,跳过已复制完成的。复制总是指定路径下的数据;而不是当前目录。
- 补充说明:–no-traverse 标志用于控制是否列出目的地址目录。
- 命令格式:
rclone copy source:sourcepath dest:destpsth
rclone sync
- 实现效果: 将源数据同步到目的地址,只更新目的地址的数据。同步的始终是 path 目录下的数据,而不是 path 目录(空目录将不会被同步)。同步数据时,可能会删除目的地址的数据;
- 补充说明: 建议先使用–dry-run 标志来检查要复制、删除的数据。 同步数据出错时,不会删除任何目的地址的数据。
- 命令格式:
rclone sync source:path dest:path
rclone move
- 实现效果: 将源数据移动到目的地址。同步数据时,可能会删除目的地址的数据
- 补充说明: 建议先使用–dry-run 标志来检查要复制、删除的数据。
- 命令格式:
rclone move source:path dest:path
例子
以移动move为例:
rclone copy GDrive:测试 Nas:测试
rclone sync GDrive:测试 /root/sync/测试
rclone move /root/本地目录 rclone配置名称:/挂载远程下的可新建目录 --transfers 8 -vP
#--transfers默认4线程,
#-P(大写)显示上传详情,
- 后台运行
#使用screen后台运行
screen
#为screen任务起名
screen -S mv rclone move /root gdrive:server_sync/test --transfers 4 -P
#分离模式(不占用当前shell)
/usr/bin/screen -dmS mv /usr/bin/rclone move /root gdrive:server_sync/test --transfers 4 -P
- 定时任务
29 5 * * * rclone move /root gdrive:server_sync/test --transfers 4 --bwlimit 10M -P --no-traverse --buffer-size 64K \
--vfs-read-wait 0ms \
--vfs-read-chunk-size 64K \
--vfs-read-chunk-size-limit 256K \
>/dev/null 2>&1 &
长期运行:挂载
单次挂载(测试)
挂载前先不要用–daemon参数,方便查看具体报错信息
#个人盘
rclone mount gd_fit: /gdrive --allow-other --allow-non-empty --vfs-cache-mode writes
#共享盘(团队盘)
rclone mount gd_share: /gdrive --allow-other --allow-non-empty --vfs-cache-mode writes --umask 000 --daemon
#其中gd_share是rclone配置时输入的配置名称,/gdrive是挂载目录,–daemon是指后台运行。
上面是挂载整个,如果要挂载单个文件夹,只要在gd_fit:后面紧加上Drive里文件夹的名字,即可挂载单个文件夹
- 查看是否挂载成功:
df -h
Linux下开机挂载
- 使用crontab
@reboot rclone mount tera:/ /mnt/rclone/tera --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --umask 000 --vfs-cache-mode writes --ignore-checksum --size-only --buffer-size 64M -vP --log-file ~/.cache/rclone.log --daemon
使用systemd
新建systemd配置模板[email protected](适用CentOS 7、Debian 8+、Ubuntu 16+)
特殊的: Rclone单独设置缓存目录,提前加入环境变量:
echo "export RCLONE_CACHE_DIR=/mnt/cache/rclone" >> /etc/profile
#以下是一条龙命令,一起复制到SSH客户端运行
cat >/etc/systemd/system/[email protected] <<EOF
[Unit]
Description=Rclone Mount: %i # systemd占位符:@ 符号之后的部分
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
Restart=always
RestartSec=4
StartLimitInterval=10
StartLimitBurst=5
ExecStartPre=/bin/sh -c '[ -n \$(ls -A /%i) ] ; rm -r /%i/* ; rm -r '\${RCLONE_CACHE_DIR:-/root/.cache/rclone}/vfs' ' # 启动前清空挂载和缓存目录
ExecStart=rclone mount %i: /%i --umask 000 --default-permissions --allow-other --allow-non-empty --attr-timeout 10m --vfs-cache-mode writes --vfs-cache-max-age 10h --vfs-cache-max-size 10G --vfs-read-chunk-size 16M --vfs-read-chunk-size-limit 1G --ignore-checksum --size-only --bwlimit 73M --buffer-size 1M --transfers 4 \
--config /root/.config/rclone/rclone.conf \
--cache-dir \${RCLONE_CACHE_DIR:-/root/.cache/rclone} `#没有环境变量则用默认` \
-vP
ExecStop=/bin/sh -c 'lsof|grep /%i |awk '{print \$2}' |xargs kill ; /usr/bin/fusermount -u /%i ; /usr/bin/fusermount3 -u /%i'
[Install]
WantedBy=multi-user.target
EOF
创建全部服务实例,并启动(按rclone配置项名称)
for a in $(grep '^\[' /root/.config/rclone/rclone.conf); do
b=${a:1:-1} #去掉头尾(`[`和`]`)。
# 检查是否已经创建了挂载目录(以配置项名称为名),如果没有则创建挂载目录
[ ! -d "/${b}" ] && mkdir -p /${b}
#先停止
systemctl daemon-reload
systemctl disable rclone@${b}
systemctl stop rclone@${b}
#再启动
systemctl enable rclone@${b}
systemctl start rclone@${b}
done
Windows下开机挂载
#TODO
其他
rclone运行选项
限速
--bwlimit 10M
意味着将上传和下载带宽限制为 10 MiB/s。 注意这是每秒字节数而不是每秒位数。要使用单个限制,请以 KiB/s 为单位指定所需的带宽,或使用后缀 B|K|M|G|T|P。默认是0不限制带宽。上传和下载带宽可以单独指定,如 --bwlimit UP:DOWN,所以
--bwlimit 10M:100k
这意味着将上传带宽限制为 10 MiB/s,将下载带宽限制为 100 KiB/s。任何一个限制都可以“关闭”意味着没有限制,所以只限制您将使用的上传带宽
--bwlimit 10M:off
这会将上传带宽限制为 10 MiB/s,但下载带宽将不受限制。
参考
Rclone技巧 & 加载Google Drive到本地目录 https://blog.gwliang.com/2020/07/24/mount-gd-for-rclone/