由于自我需求,写了两个脚本完成PT下载和保种两全其美的硬链接 Linux shell 脚本方案。
PTtool
Github: appotry/PTtool
纯Bash Shell硬链接工具!支持所有Linux, BSD, Mac,群辉,威联通等支持标准Shell的操作系统!
PT工具集合
- 硬链接工具 自动硬链接工具
- flexget-nexusphp, 自动下载刷流工具。Flexget插件,增强对NexusPHP的过滤
- nas-tools 源码备份,已经停止开发!注意暂时功能不够完善,Bug较多,评价是试用,尝鲜,还不能胜任主力!后续Bug得不到修正,强烈建议切换到Sonarr,radarr,flexget。
- MoviePilot nas-tools 作者重构项目,提升了速度,在功能,bug稳定性方面还待提升。可以提前试用
- PTools 一个新的自动签到,种子推送工具,刚出来,可以关注
- IYUUAutoReseed 自动辅种助手。PT三剑客
- PTPP 浏览器辅种助手。PT三剑客
- pt_helper, 非开源软件 自动刷流与签到。PT三剑客 nas-tools可以替代刷流
- PT站生成海报墙
- 一键转种脚本 PT一键转种脚本(树大版)
- PT_signin PT自动签到 Github Action 版
- flexget qbittorrent删种、辅种 自动签到 插件
- Auto_Upload 自动发种机 全自动将本地资源发布到 PT 站并自动辅种 使用教程
- Upload_Machine 自动将本地资源发布到PT站 看简介比 Auto_Upload 功能更强大
- qBittorrent rss订阅规则管理
- Mkv Auto Subset ASS字幕字体子集化 MKV批量提取/生成
- jproxy 优化 Sonarr 对资源的识别率,主要是针对动漫
- xarr-rss 剧情Rss订阅处理器 目前非开源?
- pter 猫站使用脚本集合
- auto-bangumi 基于Mikan Project的中文自动追番解决方案 解决中文自动追番痛点
- BangumiBot 类似auto-bangumi的中文自动追番工具,只是auto-bangumi支持Qbittorrent,BangumiBot支持Aria2/Tr
- embyExternalUrl Emby调用外部播放器播放视频,以使用本地解码能力
- subtitle-translator-electron Translate subtitle using ChatGPT,使用ChatGPT翻译字幕
相关教程
- 从零开始玩PT-入门到精通
- 如何建立自己的私人电子图书馆–出版书籍,网络小说,漫画一网打尽!
- 视频图书和音乐完全自动化管理框架图解
- 如何使用tinyMediaManager刮削电影和电视剧,动画,并自动下载字幕
- 使用jeckett,sonarr,iyuu,qt,emby打造全自动追剧流程
- 如何建立自己的私人电子图书馆–出版书籍,网络小说,漫画一网打尽!
- qBittorrent 参数详细设置教程
- transmission 使用及其配置
- Potplayer终极优化教程实现PC视频播放最强画质
框架自动化构架图解
graph LR
1[Sonarr / Radarr] == 请求 Jackett / Prowlarr Torznab 接口 ==> 2(JProxy) == 代理 Sonarr / Radarr 请求 ==> 3(Jackett / Prowlarr)
3(Jackett / Prowlarr) == 返回原始结果 ==> 2(JProxy) == 返回格式化结果 ==> 1(Sonarr / Radarr)
2(JProxy) == 优化查询关键字 ==> 2(JProxy)
2(JProxy) == 格式化查询结果 ==> 2(JProxy)
jproxy 使用图解
硬链接工具
设计目的
方便PT用户硬链接文件,在最大可能情况下节约空间,并保持做种。
小于1M的文件直接复制,方便emby,tmm等工具刮削修改nfo等小文件。
大于1M的文件硬链接到目的目录,可以修改文件名,但是不能修改文件内容!
例如:
/share/Download/src #保存下载的PT文件
/share/Download/dst #保存你自己处理过的视频文件,把emby,tmm的目录设置到dst下面
下载脚本后chmod +x mklink.sh给与执行权限
使用mklink脚本修改如下,然后直接运行mklink.sh。就可以把src下面的文件全部硬链接到dst目录。mklink适合一次性把源文件夹链接到目的文件夹
注意:
源目录,目的目录需要在一个硬盘分区里面。硬链接不能跨分区。
硬链接过的文件可以使用mv来修改存储目录,不影响硬链接效果。但是cp会增加一份存储空间。所以对于已经硬链接过的文件,使用mv,不要使用cp。
解决的问题
tmm,emby刮削的时候,必定修改nfo文件,下载的封面等图片不同刮削站点都不同,所以小文件复制,不怕修改。大文件硬链接,占有一份空间
被硬链接过的文件,同时存在多个地方,但是都指向一个存储空间,只有所有的硬链接都删除了,这个文件才会被系统删除。
同时,所有的硬链接文件,修改其中一个,其它所有指向这个位置的硬链接文件都被修改了。
使用说明
下载资源目录/share/Download,qbittorrent资源分类下载到/share/Download/src/下面的各个子目录,例如tv, anime, tv, movie, 4k, soft等等
创建一个资源整理使用目录/share/Download/dst/目录,然后就可以把/share/Download/src和/share/Download/dst目录作为下面2个脚本的输入目录,来使用了
小文件直接复制,方便tmm刮削修改nfo文件,大文件硬链接,只占有一份空间,但有2分文件,可以改名,移动目录,方便tmm整理刮削。 做种,emby使用两不误!
建议目录结构
qbittorrent使用设置
- 移动种子保存位置
在qt的web界面种子上面右键,选择菜单保存位置 - 设置分类目录
在qt的web界面种子上面右键,选择分类->新分类,先写分类名称和路径。对于多文件种子,种子添加时选择自动管理。对于单文件种子,请自行添加子文件夹,或强制创建子文件夹。
mklink.sh
修改脚本参数源目录,目的目录,替换为你自己的目录。
脚本将把源目录所有文件硬链接到目的目录,小于1M的文件直接复制到目的目录。方便nfo等小文件刮削修改,大于1M的文件
硬链接到目的目录,以节约空间,2份文件只占有一份空间。
mklink 直接针对2个文件夹做硬链接,小于1m的复制,但是没有判断是否已经硬链接过。适合全新的没有硬链接过的目录。
dirlink.sh
设计原理:针对输入原路径下一级子目录判断是否有文件islinked.lk,
有这个文件就跳过,没有就硬链接这个子目录到目的目录生成对应的子目录。
小于1M的文件复制,大于1M的文件硬链接。
可以直接修改脚本源目录,目的目录参数,也可以从参数$!,$2输入源目录,目的目录。
此脚本和mklink.sh区别在于,将检查每个目录是否已经被硬链接过,已经连接过的将跳过去不再硬链接。
原理是在源文件夹目录下添加文件islinked.lk,通过检测这个文件来判断是否硬链接过
注意:src目录下面的文件需要放到各个子目录下面去,例如src/anime/amine1,src/tv/tv2,这样才能保证islinked.lk工作正常
目录设置可以直接修改脚本,也可以命令行参数输入
重新建立连接,一次性删除所有islinked.lk文件
替换前面的路径/share/Download/tmp为你自己的路径,操作和rm相关的命令一定注意不要输入错误,删错文件代价极大!
一次性硬链接多个目录
修改限制2M大小以下的复制
修改脚本参数FILEGIG,原脚本是1M大小,修改为下面这样就是2M大小
1000000c 表示 1000000 字节,也就是 1MB。在 find 命令中,可以使用 c 表示字节,k 表示千字节,M 表示兆字节,G 表示吉字节等,这些后缀可以用来指定 -size 选项所匹配的文件大小。
如果要计算具体的字节大小,可以使用以下转换关系:
1 字节(Byte)= 8 比特(Bit)
1 千字节(KB)= 1024 字节
1 兆字节(MB)= 1024 KB
1 吉字节(GB)= 1024 MB
因此,如果要查找大于 10MB 的文件,可以使用 -size +10M,如果要查找大于 100MB 的文件,可以使用 -size +100M。
在本脚本中,修改方式就是10M就改为FILEGIG=10M,限制100M,就改为FILEGIG=100M
autolink.sh
qBittorrent 下载完成时自动硬链接下载完的种子,适用于新下载完成的种子文件。以前下载完成的文件建议使用link.sh
脚本的方法。
注意:脚本会判断是否进行硬链接的分类,分类详情见脚本内容。
- 修改脚本目标目录
将你的目录填在your_path
的等号后。 - 设置下载完成后自动运行
在qt的web界面g,点击工具->选项->下载,勾选“Torrent 完成时运行外部程序”,填入/path/to/autolink.sh "%N" "%D" "%L"
注意:填入autolink.sh的绝对位置,同时autolink与dirlink须在同一目录
这个脚本使用,需要手动修改脚本中的分类,下面这一行!
$torrent_category 是qBittorrent分类名称,也是目录名称!
注意事项
- 注意Linux权限,如果运行出错,请检查所使用的的用户和用户组权限。目的目录是否可写!
使用声明
数据无价,小心操作。
本脚本(除autolink.sh外)没有rm删除,只有mkdir和cp, 最多搞乱文件系统。但要注意不要把目的地目录设置到系统目录去了。
一切后果自负
感觉对你有帮助,来个star吧
Contributing
- Fork it ( https://github.com/appotry/PTtool/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request