基于Unraid的NAS系统内超轻量级百度云备份

2021-10-15 10:16:11 40点赞 316收藏 12评论

本文所测商品都是自费购入,文章观点都是个人感受,并不会有所偏颇。只是供参考,在购买时还是看个人需求。

之前已经写过两篇文章,第一篇选择了WIFI6路由器,第二篇选了个2.5G软路由,都是硬件相关,这篇主要是深入挖掘一下Unraid的系统使用,做一个轻量级完全静音的24小时运行的NAS系统。并且能满足一些群晖里面常用的功能,这篇是纯Unraid软件系统篇。附上之前的两篇链接。

家庭网络 篇一:升级至2.5G网口及WIFI6无线网络 - 无线路由器创作立场声明:本文所测商品都是自费购入,文章观点都是个人感受,并不会有所偏颇。只是供参考,在购买时还是看个人需求。最近WIFI6的路由器越来越多,家庭网络又到了升级的时候了。由于WIFI6的带宽已经可以超过千兆有线的带宽,所以目前升级WIFI6连千兆有线网,可能有些浪费。建议升级时最好是2.5G网口Jinlife| 23 评论51 收藏195查看详情家庭网络 篇二:升级至2.5G网口及WIFI6无线网络 - 2.5G软路由创作立场声明:本文所测商品都是自费购入,文章观点都是个人感受,并不会有所偏颇。只是供参考,在购买时还是看个人需求。追加修改(2021-03-2909:34:56):修正关于J1900的说法,不是不支持虚拟机和Docker,装还是能装,只是能力太差,不建议用来虚拟化。确切的说是这个CPU不支持VD-TJinlife| 46 评论40 收藏340查看详情

我个人用NAS主要是用到备份功能和相册功能。如果省事省心,建议买群晖做NAS就够了,里面的可视化备份操作很简单。如果有时间,愿意折腾,也享受折腾的乐趣的话,可以选Unraid或其他虚拟化系统,咱们这个J4125的小主机用的CPU跟群晖DS920+一样的,硬件性能差不多的,价格差好几倍。

目前我找到几种备份的方式:

重量级:安装一个群晖虚拟机,用虚拟机里面的CloudSync百度云备份功能,HyperBackup功能来多硬盘互相备份,不过群晖虚拟机比较占资源,如果是虚拟网卡,甚至会影响Unraid的网络带宽,最好直通网卡给群晖。

轻量级:安装一个bypy的docker,docker是python环境,运行定时百度云备份或者硬盘备份。Docker也占资源。

超轻量级:直接在Unraid中安装python环境,按需运行bypy的python脚本来进行百度云备份。直接运行rsync命令来进行多硬盘互相备份。

我在Unraid中使用的是超轻量级的方式,其实Docker通用性更好,可以用于其他的威联通,铁威马等NAS系统,有兴趣可以自行研究。

群晖(Synology)DS220+2盘位NAS网络存储服务器(无内置硬盘)2780元京东去购买群晖(Synology)DS920+四核心4盘位NAS网络存储服务器(无内置硬盘)4680元京东去购买

插件准备

Unraid最好是能够科学上网,否则装插件和Docker都比较麻烦,需要改Hosts,换镜像地址。这个好多文章都写了,就不赘述了。

1. 开发包 - NerdPack

这个插件可以支持Perl, Python的组件安装,让Unraid原生支持这些语言。还可以支持更多的组件。在应用市场搜索NerdPack即可安装。Perl是用CPU和主板温度监控的插件的前提,主页显示这两硬件的温度。 Python可以装一些开源免费的python脚本。

基于Unraid的NAS系统内超轻量级百度云备份

装好NerdPack后,在Unraid插件中打开Nerd Tools,在Name里面搜索Perl即可找到Perl-v.v.v-x86_64.txz。 安装即可。同理搜索python,可以找到python3和python-pip,装这两个即可。 选择On即可安装。这个NerdPack里面的开发包在有时候升级Unraid系统后可能会出问题,所以升级Unraid后需要卸载干净了再重装。

装好Perl后,再在应用市场安装 Dynamix System Temperature,然后配置一下即可显示CPU和主板温度。

2. 自动脚本 - CA Users Scripts

这个是一个定时运行脚本的插件,可以定时备份Unraid的U盘,定时自动备份重要资料至不同的硬盘,定时上传百度云盘等。应用市场搜索 CA user scripts 即可找到安装。

基于Unraid的NAS系统内超轻量级百度云备份


使用过程

前面装的NerdPack是为了可以运行Python脚本,装CA Users Scripts是为了可以定时运行脚本。

网上有很多CA Users Scripts的脚本教程,这里不再赘述怎么用。我这里定时 00 23 * * 1 运行脚本,即每周一的晚上23点运行脚本一次。

1. 定时备份Unraid系统U盘

#!/bin/bash

##设定需要备份U盘的目标路径。其中Backup1共享目录在第一个硬盘,Backup2目录在第二个硬盘。

dir1=//mnt/user/Backup1/Zip/

dir2=//mnt/user/Backup2/Zip/

##运行Unraid自带的备份U盘命令

echo 'Flash backup'

/usr/local/emhttp/webGui/scripts/flash_backup

##生成的备份文件,都是带flash-backup日期的压缩zip文件。这里去掉symlink

echo ''

echo 'Remove symlink from emhttp'

find /usr/local/emhttp/ -maxdepth 1 -name '*flash-backup-*.zip' -delete

sleep 5

##开始备份

echo 'Backup to other disks'

cp /*-flash-backup-*.zip "$dir1"

sleep 5

mv /*-flash-backup-*.zip "$dir2"

sleep 5

##删除目标硬盘中老的备份,这里删除的是10天前的备份, -MTIME +后面是天数

find "$dir1" -type f -name "*-flash-backup-*.zip" -mtime +10 -exec rm -rfv {} ;

find "$dir2" -type f -name "*-flash-backup-*.zip" -mtime +10 -exec rm -rfv {} ;

##完成提示

echo 'All Done'

2. 定时备份文件至不同的硬盘

这里只是演示,备份时目标可以选择各种硬盘,移动硬盘,远程NFS路径等。

#设定备份目标路径。其中Backup1共享目录在第一个硬盘,Backup2目录在第二个硬盘。

dir1=//mnt/user/Backup1/Zip/

dir2=//mnt/user/Backup2/Zip/

#运行rync将Data目录备份至两个硬盘, 这里命令行表示两边保持同步,如果Data里面删了某子文件,远程的目录也会删掉。完全同步的备份。

rsync -av --delete-after /mnt/user/Data "$dir1"

rsync -av --delete-after /mnt/user/Data "$dir2"

3. 定时备份至百度云

这里主要使用的百度云备份脚本就是bypy的python脚本。bypy在Github上是开源的。

bypy需要前期做一些配置准备,可以打开Unraid的命令行,输入如下命令,设定好命令行运行环境。

export PYTHONPATH=/mnt/user/appdata/python/lib64/python3.9/site-packages:$PYTHONPATH

export PATH=/mnt/user/appdata/python/bin:$PATH

export LC_ALL=en_US.UTF-8

export LANG=en_US.UTF-8

export LANGUAGE=en_US.UTF-8

输入如下命令安装bypy。我装的是python3.9版本,bypy是1.6.10版本。如下命令会将bypy安装至appdata目录,这个目录是共享目录,专门放应用数据的地方。这样即使重启Unraid也不会丢失bypy。如果没有--prefix指定目录,安装后重启Unraid会丢失bypy。

python3.9 -m pip install --prefix /mnt/user/appdata/python bypy==1.6.10

装好bypy,预先在 /mnt/user/appdata/python目录下建好config目录,否则会运行失败,然后运行如下命令

python3.9 -m bypy info --config-dir /mnt/user/appdata/python/config

这个info参数将会第一次连接百度云网盘,并且会出现获取授权码的链接。

基于Unraid的NAS系统内超轻量级百度云备份

建议预先网页登陆好百度盘,鼠标点击上面命令行里面的链接,将会打开百度的网页,获取到授权码,将授权码拷贝粘贴到命令行里面回车即可。

基于Unraid的NAS系统内超轻量级百度云备份

成功的话将会连接并获取到百度盘空间大小。

基于Unraid的NAS系统内超轻量级百度云备份

获取的授权信息将会存入config目录。可以看到里面多了几个json文件。 第一次运行才需要授权,如果授权过了,授权信息已存入config目录,后面就不需要做这个动作了。脚本直接无人值守运行即可。

以上已经装好了bypy包并且已经配置好了授权。

输入如下命令即可同步百度盘, syncup是将appdata同步到百度盘上去,使用的刚才的config配置授权。这种命令行方式很灵活,可以任意配置目录,任意组合配置多个百度盘的账号,多账号存到不同路径的config目录即可。 bypy syncup 支持3个参数 localdir remotedir deleteremote , 分别表示本地路径,远程百度云路径,0表示不删除远程数据,即本地删掉了,百度云里面的也不会删。

python3.9 -m bypy syncup /mnt/user/appdata /appdata 0 --config-dir /mnt/user/appdata/python/config

运行可以看看结果,数据多可能要点时间。 在命令行运行无误后即可创建定时CA User Script脚本。脚本内容如下:

# 同步至百度盘,设置环境,支持脚本以及中文

export PYTHONPATH=/mnt/user/appdata/python/lib64/python3.9/site-packages:$PYTHONPATH

export PATH=/mnt/user/appdata/python/bin:$PATH

export LC_ALL=en_US.UTF-8

export LANG=en_US.UTF-8

export LANGUAGE=en_US.UTF-8

# 安装bypy的命令,只需要装一次,这里可以加#注释掉留做以后升级或迁移再用。

# python3.9 -m pip install --prefix /mnt/user/appdata/python bypy==1.6.10

python3.9 -m bypy info --config-dir /mnt/user/appdata/python/config

# 开始百度云备份

python3.9 -m bypy syncup /mnt/user/appdata /appdata 0 --config-dir /mnt/user/appdata/python/config

python3.9 -m bypy syncup /mnt/user/Data/Joplin /Data/Joplin 0 --config-dir /mnt/user/appdata/python/config

后面的备份目录可以按需增加。备份好的文件将存在百度盘的我的应用数据/bypy目录下。

基于Unraid的NAS系统内超轻量级百度云备份

总结

总体来说,这个Unraid系统比起群晖,NAS功能使用起来没有群晖方便,需要自己想办法安装各种软件和插件,也缺乏各种自带的手机应用。没有群晖的软件自成生态,用起来比较简便,用完Unraid更觉得群晖果然还是买软件送硬件的公司,软件比硬件好。

但是群晖的虚拟化功能不够强,目前不知道如何直通网口,硬盘等。所以为了装软路由,为了网速高,只能用Unraid等系统。这样就没了方便的群晖百度云备份了。还好这里可以使用bypy代替,可以做到一样的百度云备份功能,而且是超轻量级备份,平时都不会运行,只有在定时的情况下,运行一下python脚本备份一下,非常省资源。

展开 收起
12评论

  • 精彩
  • 最新
  • 百度云盘你也敢用

    校验提示文案

    提交
    挺好用的啊,起码是个网盘,量大,免费有2T空间,其他的网盘不见得好,空间还小。一些需要备份怕丢的数据放在上面挺好的,没什么不能见人的数据。起码有个云盘备份作为多处备份其中的一种,否则数据丢了,那才损失大。

    校验提示文案

    提交
    只敢存大众的资料,私人的用NAS

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • bypy速度太慢了,但是不知道怎么调用docker版aria2

    校验提示文案

    提交
    全自动的,不用管就行了。 Aria2貌似只能下载,没听说能上传。

    校验提示文案

    提交
    上传也能多线程 --process

    校验提示文案

    提交
    收起所有回复
  • 上传到百度云的话需要先加密

    校验提示文案

    提交
  • find ... rm -rfv {} ;
    命令最后少了一个\ ,所以这一行是运行不起的
    正确的是:find ... rm -rfv {} \;

    校验提示文案

    提交
  • 收藏了 我跟你一样 也是备份到百度盘 只能虚拟群晖用套件

    校验提示文案

    提交
  • 有点麻烦,直接虚拟个群晖,我都是电脑 百度 阿里,三个备份

    校验提示文案

    提交
  • 怎么发表不了评论

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
316
扫一下,分享更方便,购买更轻松