1. 准备工作在教程开始之前，首先要做一些准备工作，主要有三点。首先就是注册一个OneDrive网盘账号，如果你已经有了可以忽略这点。其次是可以利用lnmp添加OneDrive作为备份文章备份文件。最后是一句话带你认识Rclone这个软件，Rclone是个非常强大的云存储文件管理命令行程序。2. 安装RcloneRclone安装非常简单，远程登录VPS服务器后，只需执行一条命令：curl https://rclone.org/install.sh | sudo bash安装成功后的提示如下。rclone v1.56.0 has successfully installed. Now run "rclone config" for setup. Check https://rclone.org/docs/ for more details.需要再安装一下需要的包apt install fuse3 -y3. OneDrive授权这一步是在本地电脑Windows系统操作，进入Rclone下载页面，点击下载Windows版本的Rclone软件，选择Intel/AMD-64Bit即可。如果是32位操作系统，那么选择32Bit的。下载后将全部文件解压到D:\rclone文件夹，打开CMD命令窗口，依次输入下面两条命令。cd /d d:\rclone rclone authorize "onedrive"第二条命令输入完回车后会自动打开浏览器，登录你的OneDrive账号，点击“是”按钮同意授权。成功后返回到CMD命令窗口就能看到长串授权码，即花括号以及里面的内容。将授权码复制下来保存备用，有效期1个小时。Paste the following into your remote machine ---> {"access_token":"[binary]!UpdOwFHCiKnJqYomn*8cCFNP7RM1W8DMzXNBAlgTnuaRo6v7xjxFX3xIrXWonyCk*l1Z7glOXEmRS","expiry":"2021-09-16T15:47:47.8171297+08:00"} <---End paste4. 配置Rclone和安装相同，Rclone配置也只需要一条命令。不同的是后续操作比较繁琐，需要有耐心哈。在配置过程中如果输错字母，可以按Ctrl+Backspace删除。我们首先在VPS远程登录窗口输入下面命令：rclone config新建远程网盘连接，输入字母n回车。No remotes found - make a new one n) New remote s) Set configuration password q) Quit config n/s/q> n给远程网盘起个名字，因为我是RackNerd服务器备份到OneDrive网盘，输入名称onedrivename> onedrive接着会出现一系列网盘名字列表，我输入26选择OneDrive网盘。需要注意的是这个序号以后可能会有变动，填写的时候再次确认下。Storage> 36Client ID无需设置，直接回车使用默认的。OAuth Client Id Leave blank normally. Enter a string value. Press Enter for the default (""). client_id>Client Secret也不用填写，回车使用默认值。OAuth Client Secret Leave blank normally. Enter a string value. Press Enter for the default (""). client_secret>选择OneDrive网盘服务器的区域，我用的是国际版输入1，如果你用的是世纪互联，那就输入4Choose national cloud region for OneDrive. Choose a number from below, or type in your own value 1 / Microsoft Cloud Global \ "global" 2 / Microsoft Cloud for US Government \ "us" 3 / Microsoft Cloud Germany \ "de" 4 / Azure and Office 365 operated by 21Vianet in China \ "cn" region> 1不需要设置高级配置，输入n后回车Edit advanced config? (y/n) y) Yes n) No (default) y/n> n因为我们是远程连接VPS主机，不能自动配置，填写n回车。Use auto config? * Say Y if not sure * Say N if you are working on a remote or headless machine y) Yes (default) n) No y/n> n这时候将第二步获取的OneDrive授权码粘贴到config_token>后面，回车。Enter a string value. Press Enter for the default (""). config_token>选择OneDrive网盘，输入1Choose a number from below, or type in an existing value 1 / OneDrive Personal or Business \ "onedrive" 2 / Root Sharepoint site \ "sharepoint" 3 / Sharepoint site name or URL (e.g. mysite or https://contoso.sharepoint.com/sites/mysite) \ "url" 4 / Search for a Sharepoint site \ "search" 5 / Type in driveID (advanced) \ "driveid" config_type> 1Rclone找到一个OneDrive盘，输入y确定回车。Drive OK? Found drive "root" of type "personal" URL: https://onedrive.live.com/?cid=a40d32de9 y) Yes (default) n) No y/n> y确认OneDrive网盘的所有信息，输入y回车。[rn2od] type = onedrive token = {"access_token":"EwBoA8l6BAAU6k7qJd7*3wELXHy... drive_id = a40d32de9 drive_type = personal -------------------- y) Yes this is OK (default) e) Edit this remote d) Delete this remote y/e/d> y配置完成后Rclone显示远程网盘列表，至此配置结束，输入q退出。Current remotes: Name Type ==== ==== onedrive onedrive 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经过上面的设置后，我们就成功地将Rclone连接挂载到OneDrive网盘啦。5. 编写同步脚本这个脚本也不算麻烦，首先输入下方命令新建同步脚本。vi rclone.sh按Insert键进入编辑模式，粘贴以下三条内容。#!/bin/bash rclone sync /www/backup/database onedrive:bak/database rclone sync /www/backup/site onedrive:bak/site然后按Esc键退出编辑模式，输入:wq保存并退出。脚本首行是注释，上面的脚本只包含两条命令，第二行是将/www/backup/database目录及里面的数据库备份文件，同步到OneDrive的bak/database文件夹里。第三行是同步网站备份文件。接着为新建的脚本增加执行权限。chmod +x rclone.sh6. 设置定时任务脚本编写成功后，需要设置定时任务来运行脚本，才能完成自动备份。在设置之前，首先将VPS服务器的时区设置为东八区，与我们的作息相同。如果你是国内的VPS或云服务器通常不需要设置。cp /usr/share/zoneinfo/Asia/Chongqing /etc/localtime输入y确定。接下来我们设置定时任务，输入下方命令。crontab -e按Insert键进入编辑模式，在尾部添加一行即可。35 1 * * * /root/rclone.sh >> /root/rclone.log 2>&1这行内容的意思是，每天凌晨1点35分，运行rclone.sh脚本，将网站和数据库备份文件同步到OneDrive网盘。然后等到第二天，登录OneDrive盘就能看到备份文件已经同步过来了。7. 将OneDrive挂载到本地(可选)创建需要挂载的文件夹mkdir /onedrive后台运行挂载命令1 挂载onedrive到home/onedriverclone mount onedrive: /home/onedrive --allow-other --allow-non-empty --vfs-cache-mode writes --daemon2 挂载123pan到home/123panrclone mount 123pan: /home/123pan --allow-other --allow-non-empty --vfs-cache-mode writes --daemon挂载成功后输入df -h会显示挂载信息root@v2202411242922300191:/home# df -h Filesystem Size Used Avail Use% Mounted on udev 3.9G 0 3.9G 0% /dev tmpfs 791M 656K 791M 1% /run /dev/vda3 503G 81G 402G 17% / tmpfs 3.9G 0 3.9G 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock 123pan: 1.0P 0 1.0P 0% /home/123pan onedrive: 1.1T 922M 1.1T 1% /home/onedrive8 卸载挂载fusermount -u /home/123pan
前言Rclone是一款很强大的支持多网盘的程序。可以轻松的将文件从各大网盘之间镜像相互转移，上传、下载。下面会列出一些在进行转移文件时经常会使用到的命令正文复制，下载文件复制命令，可以说是使用频率最高的了,复制的时候加上transfers参数，可以设置线程数量rclone copy /home/wwwroot/Backup/Download sharepoint:Downloads #源路径 复制路径 网盘路径用:分隔 可以是2个网盘互相复制查看文件列表rclone ls sharepoint:Downloads #查看该网盘内backup文件夹内所有的文件 rclone lsl sharepoint:Downloads # 比上面多显示一个上传时间 rclone lsd sharepoint:Downloads # 只显示文件夹而不显示文件新建文件夹rclone mkdir sharepoint:Downloads #此命令将在名字为od的网盘根目录下创建一个叫做Downloads的文件夹。挂载和卸载rclone mount sharepoint:Downloads /home/wwwroot/sharepoint & 挂载到od网盘的backup目录到/home/wwwroot目录下的sharepoint文件夹 fusermount -u /home/wwwroot/sharepoint 卸载home/wwwroot目录下sharepoint的挂载下面是一些不怎么常用的命令其他rclone config - 以控制会话的形式添加rclone的配置，配置保存在.rclone.conf文件中。 rclone copy - 将文件从源复制到目的地址，跳过已复制完成的。 rclone sync - 将源数据同步到目的地址，只更新目的地址的数据。 –dry-run标志来检查要复制、删除的数据 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最新官方版本是1.69.0版，linux可以直接用下面的命令一键安装curl https://rclone.org/install.sh | sudo bash概述Rclone 是一个命令行程序，用于管理云存储上的文件。它是云供应商的网络存储接口的一个功能丰富的替代品。超过 40 种云存储产品支持 rclone，包括 S3 对象存储、企业和消费者文件存储服务以及标准传输协议。用户称 Rclone 为“云存储的瑞士军刀”、 “无异于魔法的科技”。Rclone 具有强大的云等同于 unix 命令 rsync、cp、mv、mount、ls、ncdu、tree、rm 和 cat。Rclone 熟悉的语法包括 shell 管道支持和--dry-run保护。它在命令行、脚本或通过其API 使用。Rclone多种文件传输协议，支持SFTP，HTTP，WebDAV，FTP和DLNA。Rclone是一个成熟的开源软件，最初受rsync的启发并采用Golang编写。其文档和社区也都非常好，提供广泛和友好的使用用例。官网：https://rclone.org/功能Rclone支持但不仅限于下面列出功能：将文件备份（和加密）到云存储从云存储恢复（和解密）文件将云数据镜像到其他云服务或本地将数据迁移到云端，或在云存储供应商之间迁移将多个、加密、缓存或多样化的云存储挂载为磁盘使用lsf、ljson、size、ncdu分析和说明云存储上保存的数据联合文件系统一起呈现多个本地和/或云文件系统作为一个特性接送服务始终检查 MD5、SHA1 哈希值以确保文件完整性时间戳保留在文件中可以随时重新启动操作可以进出网络，例如两个不同的云提供商可以使用多线程下载到本地磁盘将新文件或更改的文件复制到云存储同步（一种方式）使目录相同验证后将文件移动到云存储删除本地检查哈希和丢失/额外的文件将您的云存储挂载为网络磁盘通过HTTP / WebDav / FTP / SFTP / DLNA服务本地或远程文件实验性基于 Web 的 GUI使用官方文档写得非常详细，这里主要用写几个应用场景看如何使用。直接执行 rclone version 可以查看到版本号即安装成功。配置配置可以直接添加配置文件的方式或者通过进入交互式配置会话命令一步步的完成配置。默认配置完成的后配置文件都保存在：/root/.config/rclone/rclone.conf 目录下。语法# 本地到网盘 rclone [功能选项] <本地路径> <配置名称:路径> [参数] [参数] # 网盘到本地 rclone [功能选项] <配置名称:路径> <本地路径> [参数] [参数] # 网盘到网盘 rclone [功能选项] <配置名称:路径> <配置名称:路径> [参数] [参数] # [参数]为可选项命令列表使用 rclone --help 可查看所有命令，这里只列出常用的命令，其他的命令可以看官方文档详细了解：命令说明rclone copy复制rclone move移动，如果要在移动后删除空源目录，加上 --delete-empty-src-dirs 参数rclone mount挂载rclone sync同步：将源目录同步到目标目录，只更改目标目录rclone size查看网盘文件占用大小rclone delete删除路径下的文件内容rclone purge删除路径及其所有文件内容rclone mkdir创建目录rclone rmdir删除目录rclone rmdirs删除指定环境下的空目录。如果加上 --leave-root 参数，则不会删除根目录rclone check检查源和目的地址数据是否匹配rclone ls列出指定路径下的所有的文件以及文件大小和路径rclone lsl比上面多一个显示上传时间rclone lsd列出指定路径下的目录rclone lsf列出指定路径下的目录和文件常用参数命令说明-n = --dry-run测试运行，查看 rclone 在实际运行中会进行哪些操作-P = --progress显示实时传输进度，500 ms刷新一次，否则默认1分钟刷新一次--cache-chunk-size 5M块的大小，默认 5M 越大上传越快，占用内存越多，太大可能会导致进程中断--onedrive-chunk-size 100M提高 OneDrive 上传速度适用于G口宽带服务器--drive-chunk-size 64M提高 Google Drive 上传速度适用于G口宽带服务器--cache-chunk-total-size SizeSuffix块可以在本地磁盘上占用的总大小--transfers=N并行文件数，默认为4。在比较小的内存的VPS上建议调小这个参数，比如 128M 的小鸡上使用建议设置为1。--config string指定配置文件路径，string为配置文件路径--ignore-errors跳过错误--size-only根据文件大小校验，不校验hash--drive-server-side-across-configs服务端对服务端传输日志rclone 有 4 个级别的日志记录，ERROR，NOTICE，INFO 和 DEBUG。默认情况下，rclone 将生成 ERROR 和 NOTICE 级别消息。-q - rclone将仅生成 ERROR 消息。 -v - rclone将生成 ERROR，NOTICE 和 INFO 消息，推荐此项。 -vv - rclone 将生成 ERROR，NOTICE，INFO和 DEBUG 消息。 --log-level LEVEL - 标志控制日志级别。过滤我们若同步的时候需要过滤掉一些不重要的文件的话，比如程序启动日志、敏感文件。命令说明--exclude-from排除文件或目录列表来自某个文件指定--include-from包含文件或目录来自某个文件指定--filter-from文件过滤规则来自某个文件指定--exclude排除文件或目录--include包含文件或目录--filter文件过滤规则，相当于上面两个选项的其它使用方式。包含规则以+开头，排除规则以-开头文件类型过滤比如 --exclude ".bak"，表示排除所有 .bak 结尾的文件，也可以写作 --filter "- .bak"比如 --include ".{png,jpg}"，包含所有 png 和 jpg 文件，排除其他文件，也可以写作 --filter "+ .{png,jpg}"--delete-excluded 删除排除的文件。需配合过滤参数使用，否则无效。目录过滤目录过滤需要在目录名称后面加上 /，否则会被当做文件进行匹配。以 / 开头只会匹配根目录（指定目录下），否则匹配所目录。这同样适用于文件。--exclude ".git/" 排除所有目录下的.git 目录。 --exclude "/.git/" 只排除根目录下的.git 目录。 --exclude "{Video,Software}/" 排除所有目录下的 Video 和 Software 目录。 --exclude "/{Video,Software}/" 只排除根目录下的 Video 和 Software 目录。 --include "/{Video,Software}/**" 仅包含根目录下的 Video 和 Software 目录的所有内容。大小过滤默认大小单位为 kBytes ，但可以使用 k ，M 或 G 后缀。--min-size 过滤小于指定大小的文件。比如 --min-size 50 表示不会传输小于 50k 的文件。 --max-size 过滤大于指定大小的文件。比如 --max-size 1G 表示不会传输大于 1G 的文件。过滤规则来自某个文件--exclude-from <规则文件> ：从文件添加包含规则 --include-from <规则文件>：从文件添加删除规则 --filter-from <规则文件> ：从文件添加包含 / 排除规则。比如 --filter-from filter-file.txt。filter-file.txt 示例：- secret*.jpg + *.jpg + *.png + file2.avi - /dir/Trash/** + /dir/** - *最佳实践备份本地 /data/file 目录到腾讯云cos存储中，并设置定时任务每晚自动同步，这样可以达到定时备份重要文件上云的效果。1)目录 /data/file 下创建 excludes.txt ，里面填写需要排除的文件列表。logs/** # 排除logs下所有文件 *.bak # 排除.bak结尾的文件 *.zip # 排除.zip结尾的文件2)直接编写 rclone 命令，测试执行是否同步。rclone sync -v /data/file 123pan:/www/backup --exclude-from '/data/file/excludes.txt' >> /root/rclone.log 2>&1手动执行一把，然后查看 tail -f /root/rclone.log 是否输出日志了，只要没报错则成功。3) 配置定时任务，每天自动执行执行 crontab -e # 打开定时任务列表，跳到最后新起一行添加步骤2.成功的命令并保存，内容如下：（表示每晚3点30分进行同步）30 4 * * * rclone sync -v /data/file 123pan:/www/backup --exclude-from '/data/file/excludes.txt' >> /root/rclone.log 2>&1执行systemctl restart cron.service 重启定时任务生效达到执行时间后检查 /root/rclone.log 下的日志保证没问题。总结使用 Rclone 可以轻松实现备份同步文件到各大网盘，简化了备份方案，也可以用来迁移2个不同的网盘程序文件，甚至可以直接挂载网盘到本地用来扩充磁盘食用，更多的食用请详细参考官方文档。
N1安装flippy大佬的固件后配置了rclone，随后进行了挂载使用如下命令挂载rclone mount Onedrive-N1: /mnt/sda1/onedrive --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --umask 000 --vfs-cache-mode writesrclone mount sharepoint: /mnt/sda1/sharepoint --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --umask 000 --vfs-cache-mode writes经过测试部分时候可以采用下面的命令/usr/bin/rclone mount onedrive: /mnt/sda1/onedrive --daemon --vfs-cache-mode writes保持后端运行，避免掉盘nohup rclone mount sharepoint: /mnt/sda1/sharepoint& nohup rclone mount onedrive: /mnt/sda1/onedrive&