群晖DSM 6.2增加zgrep命令

群晖 DSM 6.2 系统上执行 zgrep 命令的时候提示找不到命令,其他平台系统(ARM ),需要手工编译安装ZUtils,来提供。但是如果是 X86 系统的话(比如 DS718+ ),可以直接使用交叉编译环境里的工具,直接拷贝到系统即可。

首先参考 搭建群晖交叉编译环境(DS718+/ubuntu 16.04.6/DSM 6.2.1-23824 Update 6) 搭建群晖 DSM 6.2 的编译环境。

DS718+ 执行如下:

 

 

需要编译的(ARM 芯片版本),执行如下命令编译:

对于编译好的程序,复杂的可以自己制作安装包,简单的可以直接通过SSH推送到设备的/usr/local/bin目录下即可。

比如本次编译结果:

参考链接


ESXi 6.7 使用NUT Client连接群晖UPS服务器

近来增加了一台工控机,上面跑了软路由等业务,万一突然断电 ESXi 坏了启不了,估计就得废好大劲折腾了。以前有给群晖配过一台 APC BK650UPS,目前 UPSCOM 数据输出直接给到了群晖,毕竟无论如何也得优先保障群晖的可靠性。在群晖的设置里面看到过 UPS 服务器的选项,所以想着 ESXi 能不能连接群晖的 UPS 服务器,实现断电自动关机以保证数据安全。

继续阅读ESXi 6.7 使用NUT Client连接群晖UPS服务器

解决Btrfs文件系统ext2_saved文件磁盘占用异常

最近在 OpenMediaVault 4.1.22-1(Arrakis) 进行磁盘文件占用分析的时候,发现磁盘空间异常占用问题,如下:

这个 1.3T ./ext2_saved  文件是不存在的,并且没办法通过常规命令删除。

这个文件产生的原因是,执行过 从 EXT3/4 转换转化分区到 Btrfs :

完成转换需要删除备份的 ext2_saved 子卷,否则空间会不能释放。 请注意,如果没了它(备份子卷),你将没办法还原回 EXT3/4 文件系统。

可能会报错:

无视这个报错即可。

完成后再次查询文件占用空间:

可以看到空间已经被释放了。

参考链接


基于APC BK650-CH UPS连接群晖DS718+通过NUT(Network UPS Tools)实现WDMyCloud Gen1断电自动关机

最近新入手了 群晖 DS718+,鉴于群晖断电容易损坏硬盘的传说,为了保证设备的安全,特别购入了 APC BK650-CH UPS

APC BK650-CH UPS 有多个电源插槽,可以同时为多个设备提供断电保护,但是 APC BK650-CH UPS 只有一个 USB 设备接口,这个接口用来提供电源状态信息,比如是否断电,当前电量信息等数据。这就造成收到断电通知的只能有一个设备,这个设备必须通过网络通知其他设备,才能实现全部的断电通知。

继续阅读基于APC BK650-CH UPS连接群晖DS718+通过NUT(Network UPS Tools)实现WDMyCloud Gen1断电自动关机

解决undefined reference to pthread_atfork/pthread_detach/pthread_create/pthread_join

在编译陈硕github上面的代码时,遇到了链接错误:

在编译时已经加了-lpthread,还是有这个问题。

在这里找到了答案:http://stackoverflow.com/questions/2373109/what-library-to-be-to-be-used-to-avoid-undefined-reference-to-pthread-atfork

pthread_atfork是POSIX标准,在编译时要加上-pthread
-lpthread是老版本的gcc编译器用的,在新版本中应该用-pthread取代-lpthread

参考链接


解决undefined reference to pthread_atfork/pthread_detach/pthread_create/pthread_join

搭建群晖交叉编译环境(DS718+/ubuntu 16.04.6/DSM 6.2.1-23824 Update 6)

搭建群晖交叉编译环境(DS718+/ubuntu 16.04.6/DSM 6.2.1-23824 Update 6),以 tcl 8.4.19/expect 5.45.4/dos2unix 7.4.0的编译为例,如下:

对于编译好的程序,复杂的可以自己制作安装包,简单的可以直接通过SSH推送到设备的/usr/local/bin目录下即可。

比如本次编译结果:

参考链接