type
status
date
slug
summary
tags
category
icon
password
因为现在使用的All In One (Boom),主路由、旁路由(旁路网关)、DNS服务器等等都放在这台小小的N4100上面,而且我的主路由RouterOS还是L6授权,授权跟着硬盘,如果PVE挂了,那么我的RouterOS授权也就没了。所以非常担心如果真的Boom了应该怎么办。在进行今天备份到Onedrive的操作之前,我已经通过SMB方式挂载了一块Windows主机下的硬盘给PVE,进行每日定时备份,但是依旧担心如果本地的这个备份也出现了问题,应该怎么搞,有没有备份到远端的方法。而且因为Office 365提供1T的超大云盘空间,平常也使用不了这么多,平白放着就浪费了,不如尝试将PVE的备份同步到Onedrive。
📝 方案介绍
整体方案是开启PVE的备份功能,并将备份的数据存储在PVE的存储空间内,使用Rclone的Sync功能,进行备份数据的同步,并通过Cron进行定时任务的配置,实现定时的数据备份。
Rclone是一个开源的命令行工具,专门用于管理和同步不同云存储服务之间的文件。它支持多种云存储平台,如Google Drive、Dropbox、OneDrive、Amazon S3等。Rclone支持单向和双向同步,确保本地与云端文件的一致性,同时支持带宽控制,避免占用太多的家庭网络带宽,最重要的,Rclone支持增量同步,也就是只传输修改过的文件,节省同步时间和带宽的消耗。
📝 操作指南
获取Onedrive的access_token
首先我们需要在本地有浏览器的环境下安装Rclone,并通过配置获取Onedrive的
access_token
。原因在于PVE环境下一般我们不安装桌面环境和浏览器,所以无法通过浏览器访问的方式回调获取Onedrive的access_token
。以我日常使用的Windows 11为例,首先安装Rclone,你可以通过访问Rclone downloads进行手动下载和安装,或者如果你和我一样使用
scoop
进行Windows下软件管理,那么可以通过以下命令直接安装:安装后执行以下命令开始配置获取Onedrive的
access_token
access_token信息类似于以下这种:
我们需要复制{}及其内容进行保存,例如:
等下会用到。Rclone获取的Onedrive access_token有效期为一小时,过期之后无法再继续使用。
PVE配置Rclone
与刚刚在Windows上配置基本相同,需要先进行Rclone的安装
之后进行Rclone配置,基本与Windows下也相同
Rclone同步备份文件
如果PVE备份的存储是local的话,那么备份文件位于
/var/lib/vz/dump
内,如果是后续添加的存储空间,那么根据挂载位置位于/mnt
目录内,例如我是通过smb协议挂载的远端目录,那么位于/mnt/pve/smb/dump
,这个根据自己备份存储位置的不同,需要自己寻找。通过以下命令进行Sync同步备份至OneDrive:
/mnt/pve/smb/dump
: 即我的PVE备份文件所在目录;
onedrive:bak/pve
: 即同步至OneDrive服务下的bak/pve
文件夹,如果文件夹不存在,会自动创建;
--exclude "System Volume Information/**"
: 忽略系统Volume卷部分,由于我的SMB是挂载在Windows下,所以会有一些隐藏的系统卷文件夹和文件,如果不加这个参数,会报错:
Cron添加Rclone Sync定时任务
因为我的PVE每天定时备份是在每天的凌晨2点,所以我通过配置
rclone sync
同步备份时间为每天的凌晨2点半,这个时间基本上家里也没有人在用网络,不用担心上传占满带宽。🤗 总结归纳
没有总结。
📎 参考文章
有关PVE安装或者使用上的问题,欢迎您在底部评论区留言,一起交流~