NAS相关 篇三:硬链接神器hlink使用教程(群晖篇)
创作立场声明:所有内容均来自网络公开资料+自我研究,纯分享。如对你有帮助,请多多支持鼓励。
影音媒体库,应该是广大NAS玩家必不可少的折腾项目。
不知道有多少人入坑NAS,就是为了那炫目的海报墙?
海报墙、刮削、PT这几个坑,估计90%的NAS玩家都踩过。
只要你踩过这几个坑,那就肯定会遇到一个问题。
PT做种和刮削,该怎么相容?
今天给大家带来一个PT做种+刮削近乎完美的方案
硬链接神器 —— hlink
https://github.com/likun7981/hlink
可能有人会说,不就是硬链接吗,不稀奇。
没错,hlink的软件功能就是创建硬链接。
但是hlink强就强在,可以对已经创建过硬链接的文件进行过滤。每次执行命令只会硬链接新的文件,就算将硬链接生成的目标文件重命名,hlink也能识别过滤,不会进行重复创建。
更重要的是hlink支持黑白名单模式,你可以任意选择需要的文件格式进行硬链接。
简单来说,部署好hlink以后,可以利用hlink的功能,把PT做种的资源“复制”成一个只有媒体文件的媒体库。 用emby、plex、jellyfin之类的媒体库软件对“复制”出来的这个媒体库进行任何操作,都不会影响源文件的PT做种。
之所以说是“复制”,是为了方便小白们简单理解硬链接。实际上源文件和所有硬链接文件,只占用一份空间。有兴趣请自行搜索“硬链接”相关资料学习。这里就不展开讲了。
hlink系列教程也是偏小白向的,不严谨的地方更多是为了方便小白理解。老司机请海涵。
话不多说,下面就开始hlink在群晖下的部署教程。
hlink是一个软件,依赖于nodejs10以上环境。
所以第一步我们先安装nodejs。
套件中心搜索node
安装Node.js V12套件
然后登陆SSH,获取root权限。
输入安装命令
npm install -g hlink
按回车开始安装
稍作等待,一会就可以完成安装。
如图显示既是安装成功
如果出现安装失败,请检查网络连接情况,重新输入安装命令多试几次。
安装后就可以使用hlink了,非常简单。
硬链接命令为
hlink "源路径" "目标路径"
路径部分建议用半角""标注,可以避免路径内文件夹名称有空格导致命令识别错误。
示例:
Hlink "/volume8/WD 12T/PT/movie" "/volume8/WD 12T/test"
回车执行
执行结果就是,把路径 "/volume8/WD 12T/PT/movie"的所有内容,硬链接到"/volume8/WD 12T/test"。
注意硬链接不能跨盘,也就是说源路径和目标路径必须在同一个盘(分区)内,如果执行报错,大概率是跨盘导致。
群晖下,同一个存储池就是同一个盘。
进阶功能
软件功能可以在SSH输入hlink -–help查看
一般我们只需要用到白名单或者黑名单功能就好了。
要使用黑名单模式必须把hlink默认使用的白名单配置参数去除。首先我们生成配置文件。
执行
hlink -g
生成配置文件
配置文件默认路径在/root/hlink.config.js
然后编辑hlink.config.js配置文件
执行命令
vi /root/hlink.config.js
默认配置文件内容如上图。
图上includeExtname部分为hlink默认硬链的格式。
这里要把includeExtname项默认的内容都删掉,否则excludeExtname黑名单模式不生效。
删掉includeExtname内容就可以实现全内容硬链(hlink "源路径" "目标路径")、白名单硬链(hlink -i=xxx "源路径" "目标路径")、黑名单硬链(hlink -e=xxx "源路径" "目标路径")三种模式手动控制。
(按 i 键,进入编辑模式)
修改完成保存配置文件即刻生效。
(按 esc 退出编辑模式,键入 :wq 保存编辑)
这样我们就配置好了hlink,后面正式开始使用。
黑白名单使用方法如下
白名单功能命令为-i,可以指定仅需要硬链接的格式。比如我只需要硬链接.MKV格式的文件。则命令如下(以使用部分的命令为例),注意空格。
hlink -i=mkv "/volume8/WD 12T/PT/movie" "/volume8/WD 12T/test"
如果需要多个格式类型,则在-i=后写入,以半角逗号隔开,比如需要连接.MKV、.MP4、.MOV格式,则命令如下(以使用部分的命令为例),注意空格。
hlink -i=mkv,mp4,mov "/volume8/WD 12T/PT/movie" "/volume8/WD 12T/test"
运行参考图
黑名单功能命令为-e,可以指定不需要硬链接的格式。比如我们不需要硬链接.nfo格式的文件。则命令如下(以使用部分的命令为例),注意空格。
hlink -e=nfo "/volume8/WD 12T/PT/movie" "/volume8/WD 12T/test"
如果需要多个格式类型,则在-e=后写入,以半角逗号隔开,比如不需要连接.nfo、.jpg、.png、.bmp格式(这几个格式文件,进行刮削很可能会被改动,所以一定要排除。因为硬链接修改目标文件也会导致源文件同步修改,会影响做种。),则命令如下(以使用部分的命令为例),注意空格。
hlink -e=nfo,jpg,png,bmp "/volume8/WD 12T/PT/movie" "/volume8/WD 12T/test"
运行参考图
想全自动执行的话,在群晖计划任务添加你需要的硬链接命令,设定自己需要的时间间隔,定时执行就可以了。
如果想一次执行多条命令,可以写在一起,单条命令用回车键分隔。
设置好以后,hlink就可以后台全自动硬链接,无需人工干预。
你只需要让你的媒体库(emby、jellyfin、plex、video station)自动读取刮削目标文件夹内容就可以啦。完全不会影响PT做种。
如果有使用上的问题,请加入反馈QQ群。
后面我还会把unraid下、威联通下的hlink小白教程发上来,敬请期待。
完结 撒花
由于编辑文档的时候,没注意word开启了英文首字母自动大写功能。导致教程里一些执行命令的"hlink"字样变成了"Hlink"。这样执行是会失败的。执行hlink命令的时候,注意是小写的“hlink”。长篇教程难免有错漏,遇到问题最好对比执行示意图,学会纠错。
灵KOYB
校验提示文案
怂系青年
校验提示文案
foxcat
校验提示文案
值友3429899920
校验提示文案
娃哈哈哈哈哈哈233
校验提示文案
临川四梦
校验提示文案
火焰与鱼
校验提示文案
好冷T_T
改了源文件名就没法做种,不改识别不到
校验提示文案
zz云河
root@nas:~# hlink "/volume1/z1/PT" "/volume1/z1/Hlink"
INFO 开始检查配置...
SyntaxError: Unexpected identifier
at Loader.moduleStrategy (internal/modules/esm/translators.js:140:18)
at async link (internal/modules/esm/module_job.js:42:21)
校验提示文案
DeathlessX
校验提示文案
飞舞的年华
校验提示文案
Scott_KendrickDD
校验提示文案
卡索思
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@~2.3.2 (node_modules/hlink/node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
+ hlink@0.6.1
added 139 packages from 99 contributors in 26.883s
安装的时候,出现这2条npm warn,请问要怎么解决?
校验提示文案
暗暗的阿木
校验提示文案
那年夏天雨飘飘
校验提示文案
Hi王蕴
校验提示文案
沐林海7157
校验提示文案
DeathlessX
校验提示文案
oengus
校验提示文案
carer
校验提示文案
zy6903
校验提示文案
值友2722913717
校验提示文案
Vckoko
校验提示文案
阿里969
校验提示文案
八爪昂鱼
校验提示文案
呆萌的呆少年
校验提示文案
zz云河
root@nas:~# hlink "/volume1/z1/PT" "/volume1/z1/Hlink"
INFO 开始检查配置...
SyntaxError: Unexpected identifier
at Loader.moduleStrategy (internal/modules/esm/translators.js:140:18)
at async link (internal/modules/esm/module_job.js:42:21)
校验提示文案
卡索思
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@~2.3.2 (node_modules/hlink/node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
+ hlink@0.6.1
added 139 packages from 99 contributors in 26.883s
安装的时候,出现这2条npm warn,请问要怎么解决?
校验提示文案
Scott_KendrickDD
校验提示文案
好冷T_T
改了源文件名就没法做种,不改识别不到
校验提示文案
值友3829487836
校验提示文案
Lee-Jun
校验提示文案
月半庆
校验提示文案
月半庆
校验提示文案
月半庆
校验提示文案
月半庆
校验提示文案
berry_x
2.使用一段时间后会有报错,[HLINK ERROR]: EACCES: permission denied, mkdir '/var/services/homes/admin/.hlink' 但是硬链接还是显示成功,不知道这个错误是什么意思。
3,如果需要重新创建,请在删除或编辑文件 /var/services/homes/admin/.hlink/cache.json。 不知道如何访问这个cache文件夹。通过 vi /root/holik.cache.js无法访问。
校验提示文案
追逐梦
校验提示文案
火焰与鱼
校验提示文案
临川四梦
校验提示文案