Emby正传 篇一:PT党神器!群晖使用hlink实现媒体库自动硬链接!Emby刮削把关人!
前言
这是我人生中的第一篇教学文章!虽然我也是个刚入坑没多久的小白 ,之前觉得我这水平给人写教程有些贻笑大方了,但是水了一些天的群发现和我一样的小白真的很多很多,虽然有非常多的热心群友愿意手把手教导,但这也萌生了我记录和分享自己一路走来半吊子经验的想法。前人栽树后人乘凉,希望自己能坚持一直写下去!
本文是我在学习了张大妈上一位大佬@转身就买的【硬链接神器hlink使用教程(群晖篇)】以及Gayhub上原作者@likun7981的项目wiki后完成的,在此深表感谢~
相信玩Nas的朋友们对Emby/Jellyfin和Plex都不陌生(甚至可以说是人手一个?)应该有不少人就是因为在网上看见大佬们整理的炫酷的海报墙入的坑(没想到这个坑这么深啊喂!!!)
比如这样↓
今天要说的硬链接就与海报墙息息相关,对于PT玩家来说甚至可以说是必不可少的一个工具,那就是本文的主角:hlink硬链接工具。那么硬链接是什么?为什么要使用硬链接?hlink又是什么?看完文章你就明白啦!
什么是软硬链接
由于我是个菜鸡,对Linux一窍不通,所以抄了一些大神的解释整理了下:
软链接
相当于Windows中的快捷方式,源文件和链接文件公用一个存储块,删除链接文件对源文件没有影响,删除源文件后链接文件失效。
软链接与windows下的快捷方式类似 ,软链接实际上只是一段文字,产生一个新文件(这个文件内容实际上就是记要链接的源文件的路径信息),这个文件指向另一个文件的位置,里面包含着它所指向的文件的名字,系统看到软链接后自动跳到对应的文件位置处进行处理。
硬链接
类似于在Windows上对一个文件执行了复制粘贴,相当于两个独立的空间,但只占用源文件的一份空间大小。源文件和链接文件互不影响,删除源文件或删除链接文件对对方没有影响。
硬链接源文件名和链接文件名都指向相同的物理地址,不能对目录创建硬链接。文件在磁盘中只占用一份空间,由于删除文件要在同一个索引节点属于唯一的连接时才能成功,因此可以防止不必要的误删除。
硬链接必须在同一文件系统中,而软链接可以跨文件系统。
为什么要使用硬链接
在使用hlink以及搭建自动化流程之前,我一直是手动下载影片到仓库盘的指定目录,即电影直接下载到电影文件夹,剧集直接下载到TV文件夹。BT党的话这种方式是完全OK且没有任何问题的,但是使用PT下载的话,一般都会遇到刮削方面的问题。由于PT下载完成后需要继续做种,如果修改文件名的话会直接导致种子失效。因此硬链接可以说是广大折腾媒体库的PTer们的福音,在不影响做种且不占用额外空间的情况下可以随意修改文件名和路径!
进入正文,首先介绍一下hlink可以实现的功能:
根据命令批量创建源地址下面的所有视频文件 硬链 到目标地址
重复硬链检测,就算硬链接已改名也能检查到
批量删除源地址在目标地址所创建的硬链
为了方便理解我举几个例子,比如你的下载目录是disk1/downloads/Movies(电影文件夹);而你的Emby加载的媒体库的目录是disk1/media/Movies(电影刮削目录)
现在你下载了两部电影到downloads/Movies下,路径是
disk1/media/Movies/mov1
disk1/media/Movies/mov2
hlink的三个功能对应实现的操作是:
自动为disk1/downloads/Movies这个下载目录下的所有文件批量创建到disk1/media/Movies的硬链接,即此时在media/Movies会自动生成mov1和mov2的文件,重复的文件只会占用一份空间,之后你可以随意对硬链接后的文件进行重命名来刮削而不会影响到源目录downloads下的文件
当你再次对disk1/downloads/Movies发起硬链命令的时候,会自动跳过之前硬链过的mov1和mov2文件,即使你修改了media/Movies下这两个文件的名字为change1和change2,hlink仍能识别到硬链且不对这两个文件进行重复硬链接,以防止同一个目录下出现多个重复的硬链文件
使用hlink -d命令可以进行交互式的删除硬链接操作,首先在源路径选项下选择disk1/media/Movies,然后选择目标路径为disk1/media/Movies,hlink会检测所有在此路径下生成的硬链接文件并进行删除,即使以及改名的文件依然会被删除
安装hlink
首先在群晖的套件中心安装Node.js v12套件,直接搜索下载即可
使用putty或Xshell等工具SSH到群晖,具体方式的话就不展开介绍了,这里默认大家都会这一步操作了 sudo -i给自己root权限后输入以下命令安装hlink:
npm install -g hlink
出现下方提示时即表示已安装成功
硬链接命令介绍
基本命令
hlink "源路径" "目标路径"
路径部分建议用英文半角的引号""进行标注,可以避免路径内文件夹名称有空格导致命令识别错误。但更建议养成平时创建文件夹时不使用空格号的习惯,可以用下划线_之类的符号来代替空格。
拿我自己的Nas路径举一个例子:
hlink "/volume1/18 bro/Media/Downloads/TV" "/volume1/18bro/Media/TV"
此命令即表示使用hlink的默认配置(转移所有)将Downloads目录下的TV文件夹内的文件全部硬链接到Media目录下的TV文件夹内。
1. 硬链接的两个路径不能跨越分区。以群晖为例,群晖有存储池(可能由多块硬盘组成)-存储空间(通常命名为volume1234)-共享文件夹(sharefolder1/sharefolder2)这几个层级。要保证硬链接成功的话,源路径与目标路径需要在同一个共享文件夹下。
推荐在仓库盘的共享文件夹下准备一个媒体库专用目录,命名为Media;在Media下设置Movies,TV等对应文件夹;然后设置一个同级的Downloads目录用来作为下载目录,所有的下载源文件全部存放在Downloads目录下。将Downloads下的各个目录对应地硬链接到Movies等目标目录,这一步在文章最后的群晖设置定时任务里会提到,这样可以根据不同的媒体类型设置对应的硬链接规则。
2. 请注意,硬链接的命令hlink必须为小写,如果打成Hlink会导致报错
修改配置文件
首先需要生成配置文件,才能进行后续将默认的白名单配置参数删除的操作
在SSH工具内输入命令:hink -g
配置文件默认路径为/root/hlink.config.js,可以使用winscp找到
ssh下修改
输入命令:vi /root/hlink.config.js
按i键进入编辑模式,按esc键退出编辑模式,键入:wq 保存编辑
全局硬链配置
删除includeExtname项默认的内容。 该项为hlink的默认白名单格式,配置该项后使用命令时会将名单内的文件格式硬链到目标目录下。
如果不配置该项,执行命令时会采用以下策略
若已配置excludeExtname,则将链接黑名单格式外的其他文件到目标目录
若未配置excludeExtname,则此时包含和排除格式都未配置,那么执行命令将链接源目录下的所有文件到目标目录
因为默认的excludeExtname是没有配置的状态,因此删除includeExtname配置后即可实现全局硬链。
全局硬链命令示例:
hlink "/volume1/18bro/Media/Downloads/TV" "/volume1/18bro/Media/TV"
建议BDMV原盘文件执行全局硬链接
白名单模式
常用的格式有.mkv、.mp4、.mov、ass等,如果需要多个格式类型,则在-i=后写入,以半角逗号隔开。
重要提醒:
若要使用白名单模式,则excludeExtname下的内容必须删掉,否则includeExtname白名单模式不生效。
白名单命令示例:
hlink -i=mkv,mp4,mov,rmvb,avi,wmv,flv,ass,srt "/volume1/18bro/Media/Downloads/TV" "/volume1/18bro/Media/TV"
使用白名单模式,则hlink只会为名单内的格式创建硬链。
黑名单模式
常见的需要屏蔽的格式为刮削生成的文件,如nfo,jpg,png,bmp,txt,pdf,doc,torrent,ass,srt,vsmeta等
重要提醒:
若要使用黑名单模式,则includeExtname项默认的内容必须删掉,否则excludeExtname黑名单模式不生效。
黑名单命令示例:
hlink -e=nfo,jpg,png,bmp,txt,pdf,doc,torrent,vsmeta "/volume1/18bro/Media/Downloads/TV" "/volume1/18bro/Media/TV"
使用黑名单模式,则hlink会在创建硬链时忽略名单内的格式。
删除硬链接
有时我们需要对已硬链的文件重新执行硬链接,由于默认缓存已打开,会将硬链成功的文件加入缓存不再进行硬链,此时可以使用自带的hlink -d进行交互式的删除硬链,非常方便奥!
1. root下输入hlink -d
2. 选择需要删除的源目录,该路径下的硬链文件及其目录都将被一并删除
非常方便,自动确认所有的硬链路径,免去了手动删除的麻烦!
设定定时运行
在群晖的计划任务处添加需要执行的命令
如果想要一次运行多个命令,比如考虑到实际情况,媒体库一般都分为电影、剧集、动漫等文件夹分开存储,那么目录不同硬链接也需要分开执行。可以将多条命令用分号;和回车隔开
计划任务示意图
运行成功示意图
使用白名单模式运行
好啦,关于hlink的使用基本就是这些内容了。如果有碰到问题之类的,建议先根据报错找一下原因,也可以在评论区留言奥~
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
张九岁
校验提示文案
朱哲__
校验提示文案
坐等拱白菜的猪
校验提示文案
梦晓生
校验提示文案
怂系青年
校验提示文案
天和街浪子阿泽
校验提示文案
值友1347179028
校验提示文案
铭晨叶印
校验提示文案
jacksky6
1 根据分类设置几个文件夹,每个文件夹都有一个同级硬链文件夹,例如tvOrigin — tvHlink
2 使用 rss 和pt助手下载到前面设置的几个origin文件夹
3 使用qb 的调用外部程序功能当种子完成下载时调用自写硬链脚本,并传入当前种子路径,仅针对当前种子内文件进行定制硬链接,及时性好,下载完瞬间硬链接好,不用轮寻,不用枚举大量资源, 也没有删了又出现的问题。
4 使用autoremovetorrent脚本每天运行一次删除做种20天以上的种子,并删除数据,手动删除种子时也选择删除数据
5 几个原始下载文件夹就当看不见不要管,将硬链文件夹加入emby管理,由于前面的硬链接充分考虑了emby识别问题,所以此处基本可以95%以上的识别。没事不喜欢的看过的在emby 中随时删除即可。
全程几乎不需要在文件管理器操作,原始文件夹自动管理自动删除,硬链接文件夹emby 批量整理删除即可。
校验提示文案
Jonlone
校验提示文案
三角超
校验提示文案
唐小迁的
校验提示文案
大眼睛帅哥
校验提示文案
值友5577818012
校验提示文案
张九岁
校验提示文案
Adkkf
校验提示文案
Sword_Dance
校验提示文案
kobe416
校验提示文案
hotlattle
校验提示文案
Xiaobai_ZD
校验提示文案
zwk1
校验提示文案
Erican56
校验提示文案
无双明镜止水
校验提示文案
值友4380149773
校验提示文案
值友4380149773
校验提示文案
值友8682474761
校验提示文案
p1y1c1
校验提示文案
值友4498906730
校验提示文案
灵KOYB
校验提示文案
天才哟
校验提示文案
值友5577818012
校验提示文案
大眼睛帅哥
校验提示文案
火焰与鱼
校验提示文案
大熙宝遇见雪纳瑞
校验提示文案
德才兼备噗哈哈
hlink "/volumeUSB1/usbshare/video/剧集" "/volume1/hlink/video/media2"
跨硬盘不能吗?
校验提示文案
红猫警长
校验提示文案
jacksky6
1 根据分类设置几个文件夹,每个文件夹都有一个同级硬链文件夹,例如tvOrigin — tvHlink
2 使用 rss 和pt助手下载到前面设置的几个origin文件夹
3 使用qb 的调用外部程序功能当种子完成下载时调用自写硬链脚本,并传入当前种子路径,仅针对当前种子内文件进行定制硬链接,及时性好,下载完瞬间硬链接好,不用轮寻,不用枚举大量资源, 也没有删了又出现的问题。
4 使用autoremovetorrent脚本每天运行一次删除做种20天以上的种子,并删除数据,手动删除种子时也选择删除数据
5 几个原始下载文件夹就当看不见不要管,将硬链文件夹加入emby管理,由于前面的硬链接充分考虑了emby识别问题,所以此处基本可以95%以上的识别。没事不喜欢的看过的在emby 中随时删除即可。
全程几乎不需要在文件管理器操作,原始文件夹自动管理自动删除,硬链接文件夹emby 批量整理删除即可。
校验提示文案
值友7709513926
校验提示文案
五泡哥哥
校验提示文案
铭晨叶印
校验提示文案