Github
关于该主题
### 一键安装:
```
curl https://rclone.org/install.sh | bash
```
接下来操作方法和windows完全一样,就不重复了,唯一的区别是“Use auto config?”这里选择n,并输入之前获取的Token
`{“access_token”:”xxxxxxxx”} # 注意!复制{xxxxxxxx}整个花括号内容,并保存好,后面需要用到。`
### 世纪互联配置:
重定向url:
rclone类:http://localhost:53682
SharePoint:http://localhost
其他:可以写自己的域名,注意一定要是https。(或者根据程序要求。)
配置 Rclone
执行:
```
rclone config
```
name>sp`第一步:输入自定义名字`
Storage>28`第二步:选择onedrive`
client_id>`第三步输入世纪互联客户端ID`
client_secret>`第四步输入世纪互联密钥`
```
Edit advanced config? (y/n)
y) Yes
n) No
y/m>n #是否启动高级编辑第五步
```
```
Remote config
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,这儿windows选择y,则浏览器会跳出来授权。linux则选择n,手动输入token
```
### 安装 fuse
debian系统:
```
apt-get update && apt-get install -y fuse
```
centos系统:
```
yum install -y fuse
```
### 挂载参数
rclone默认安装文件位于`/usr/bin/rclone`,并给于执行权限
rclone默认配置文件位于`$HOME/.config/rclone/rclone.conf`,其中`$HOME`为用户家目录。
```bash
ls -l $HOME/.config/rclone/rclone.conf
```
rclone缓存目录位于`$HOME/.cache/rclone`,如果您服务器挂载了额外的磁盘,建议将这个目录做软连接到非系统盘,避免Rclone使用中占用较多的系统磁盘。
```
ln -s /volume1/opt/temp/rclone /root/.cache #缓存软链接,即表示默认将root/.cache/rclone转移到/volume/opt/temp/rclone目录下面(群晖需用)
```
##### vps下挂载命令
```bash
rclone mount onedrivecn:/ /onedrivecn --allow-other --attr-timeout 5m --vfs-cache-mode full --vfs-cache-max-age 24h --vfs-cache-max-size 10G --vfs-read-chunk-size-limit 100M --buffer-size 100M --daemon
```
##### 别被上面一串命令吓到,我们来拆分下,发现还是非常简单的:
- `rclone mount`:是rclone挂载命令
- `onedrivecn:/`:提前配置好的OneDrive,并将名称命名为`onedrivecn`,`onedrivecn:/`则是OneDrive上的路径
- `/volume1/onedrivecn`:为本地文件夹路径(建议为空目录)
- `--allow-other`:指的是允许非当前Rclone用户外的用户进行访问,否则可能发生部分程序不可读(无权限)的情况。
- `--allow-non-empty`:允许在非空目录上装载(群晖需用)
- `--attr-timeout 5m`:文件属性缓存,(大小,修改时间等)的时间。如果小鸡配置比较低,建议适当提高这个值,避免过多的和内核交互,占用资源。
- `-vfs-cache-mode full`:开启VFS文件缓存,这样可减少Rclone与API交互,同时可提高文件读写效率
- `--vfs-cache-max-age 24h`:VFS文件缓存时间,这里设置的24小时,如果文件很少更改,建议设置更长的时间
- `--vfs-cache-max-size 10G`:VFS文件缓存上限大小,建议不超过当前空余磁盘的50%
- `vfs-read-chunk-size-limit 100M`:分块读取大小,这里设置的是100M,可提高文件读的效率,比如1G的文件,大致分为10个块进行读取,但与此同时API请求次数也会增多
- `--buffer-size 100M`:内存缓存,如果您内存比较小,可降低此值,如果内存比较大,可适当提高
- `--transfers 4`:该参数控制最大同时传输任务数量,如果你cpu性能差,建议调低,但太低可能会影响多个文件同时传输的速度。
- `--low-level-retries 200`:该参数为传输文件没速度的时候重试次数,没速度的时候,单个会自动睡眠10ms起,然后再重试,不行,再睡眠更长一段时间,再重试,这样可以稍微加快文件上传进度
- `--daemon`:指后台方式运行
了解了上面参数含义后,便可根据小鸡的配置来适当调整,以免Rclone发生CPU、内存莫名使用过多,而不知所措。
然后用`df -h`命令看一下:`看到最后一行onedrivecn 1.0T就是挂载上了。`
###### 总结:比较重要的环境,建议单独创建rclone用户来运行、Rclone缓存目录建议设置为非系统分区(`/`)如果机器配置较低,请降低文件缓存和内存缓存
**`特别注意:群晖cloud sync使用webdav同步时必须使用root帐号登陆,否则文件权限不足,rclone挂载的文件夹回收站不要。`**
群晖脚本运行-新增触发的任务-自定义的脚本
```
bash /volume1/opt/rclone/rcloned
```
新建reclold空文件,脚本内容如下:
```
sleep 2m
nohup /volume1/opt/rclone/rclone --config=/volume1/opt/rclone/rclone.conf mount onedrivecn:/ /volume1/opt/onedrivecn --allow-other --allow-non-empty --cache-dir /volume1/opt/temp --attr-timeout 10m --vfs-cache-mode full --vfs-cache-max-age 5h --vfs-cache-max-size 30G --vfs-read-chunk-size-limit 100M --buffer-size 100M --transfers 3 --low-level-retries 200 &
```
### linux开机自启
适用于使用`systemctl`命令的linux
```
#将后面修改成你上面手动运行命令中,除了rclone的全部参数
#command=" mount onedrivecn:/ /onedrivecn --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --umask 000"
#或者另一条命令如下
command=" mount onedrivecn:/ /onedrivecn --allow-other --attr-timeout 5m --vfs-cache-mode full --vfs-cache-max-age 24h --vfs-cache-max-size 20G --vfs-read-chunk-size-limit 100M --buffer-size 100M"
#以下是一整条命令,一起复制到SSH客户端运行
cat > /etc/systemd/system/rclone.service <