UNRIAD定时任务插件user scripts

user scripts 是unraid下轻量的定时任务插件,可以定时运行自定义脚本,我用它实现定时任务(crontab),比如:

  • 定时备份某个文件夹
  • 定时删除备份文件夹内大于1个月的备份文件,以免爆仓

#我的使用简述:

比如我想实现如下功能,

  • 每周打包备份/mnt/user/appdata这个目录,到/mnt/user/unraid/data/内
  • 并且自动删除backup文件夹内超过30天的备份文件

1,在user scripts内点ADD NEW SCRIPT创建一个新的脚本,可以命名为appdata_backup

2,输入如下命令

tar zcvf /mnt/user/unraid/data/appdata/appdata_"$(date +"%Y%m%d")".tar.gz /mnt/user/appdata

命令意思是以appdata_(日期).tar.gz的文件名打包/mnt/user/appdata这个文件夹,并且放到/mnt/user/unraid/data/appdata这个目录下

3,将定时任务设为每个星期运行一次:Scheduled weekly

4,重复上述步骤,再新建一个定时任务用来自动清理旧的备份文件,可以命名为cleanup_appdata_backup,然后输入命令:

find /mnt/user/unraid/data/appdata/ -mtime +30 -type f -name "*" -exec rm -rf {} \;

意思是删除/mnt/user/unraid/data/appdata/这个文件夹下所有建立大于30天的文件。关于这个命令更多的用法可以参考本站另一篇文章 linux删除一定时间内的文件数据

5,将这个定时任务设置为每天运行一次。这样就可以防止备份存放的文件夹不会爆仓。

有任何问题欢迎留言,enjoy~

UNRAID docker设置bridge桥接模式外网无法访问

unraid的docker中的网络模式设置为bridge桥接模式,并且路由器设置了端口转发,但外网就是无法访问。

  • 这种情况一般是由于unraid的网关设置成了旁路由的IP(类似于openwrt作为旁路由),只要将网关设置为主路由外网就可以访问了。
  • 如果网关一定要设置为旁路由的IP,可以在docker里采用custom:br0的网络模式,也就是单独指定一个内网IP地址,然后转发这个IP的端口,也能实现外网访问。
  • 另外custom:br0还可以在unraid的settings里单独配置路由表指定和unraid不同的网关。

unraid和esxi怎么选

个人浅见,简单说下unraid和esxi作为家庭系统怎么选。

unraid:

  • 校验机制是unraid最大的特色,也是unraid之所以叫unraid的原因。校验机制相比于raid的多硬盘安全性,unraid只需要一块最大的硬盘作为校验盘即可保证数据的安全性。但校验有时候需要占用更多系统资源,包括CPU和硬盘IO。
  • 可玩性强。docker可用于各种拓展,实现各种功能,并且不像虚拟机那样占用太多资源。
  • 直通真的方便。

esxi:

  • unraid已经够稳定了,esxi更稳定。
  • 虚拟机性能特别强。其实unraid虚拟机性能也不弱,但对比esxi就逊色了。不过无论如何都比群晖强多了。

如果你没有数据备份安全性考虑(不使用校验机制),也只是用来装固定的几个虚拟机,比如centos、windows和openwrt,那么esxi绝对够了,不仅更稳定还免费;如果你有数据备份需求,并且有强烈的扩展需求(docker),而且硬件配置也还行,欢迎尝试unraid。

UNRIAD CPU占用高

直接说重点,unraid的cpu占用高大部分原因都是卡在IO上,cpu在wait数据处理,也就是cpu等硬盘。

这是由于unraid的数据分散机制导致的。因为同一个文件夹下的不同数据可能分布在不同的硬盘里。有些硬盘读写比较快,比如ssd硬盘;而有些就比较慢,特别是老旧的hdd硬盘。

要解决cpu占用高的问题,

  • 校验盘的校验时间尽量定时在闲时,比如半夜里。
  • 尽量使用cache缓存,特别是nvme的缓存盘。如果没有,也可以两块垃圾盘放同一个cache pool内会自动组raid1
  • 经常读写的文件夹比如appdata, domains, ios, system,可以指定放在ssd/nvme这类硬盘里,不要让unraid把他们分散到hdd盘去。可以参考使用unbalance这个插件UNRAID 数据转移插件Unbalance
  • qbittorrent、transmission这类下载的docker,可以将下载目录直接放在缓存盘。

有任何问题欢迎留言~