Code Monkey home page Code Monkey logo

pttool's Introduction

PTtool

Github: appotry/PTtool

纯Bash Shell硬链接工具!支持所有Linux, BSD, Mac,群辉威联通等支持标准Shell的操作系统!


PT工具集合

相关教程

框架自动化构架图解

  • 点击放大 框架自动化构架图解
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适合一次性把源文件夹链接到目的文件夹

SRC="/share/Download/src"
DST="/share/Download/dst"

注意:

源目录,目的目录需要在一个硬盘分区里面。硬链接不能跨分区。

硬链接过的文件可以使用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使用两不误!

建议目录结构

/share/Downlosd/src       # BT下载工具默认保存主目录
/share/Download/dst       # 硬链接目的目录,Emby,tmm,使用的目录,保存各种刮削信息。以及个人文件名修改,目录结构修改。
在src目录下面建立子目录movie,music,anime,tv,4k等等,在qbittorrent里面设置分类,
指向这里的movie,music,anime,tv等子目录。下载完后使用下面的硬链接脚本,
把文件硬链接到目的文件夹。tmm,emby使用目的文件夹刮削数据。

qbittorrent使用设置

  • 移动种子保存位置 在qt的web界面种子上面右键,选择菜单保存位置
  • 设置分类目录 在qt的web界面种子上面右键,选择分类->新分类,先写分类名称和路径。对于多文件种子,种子添加时选择自动管理。对于单文件种子,请自行添加子文件夹,或强制创建子文件夹。

mklink.sh

修改脚本参数源目录,目的目录,替换为你自己的目录。 脚本将把源目录所有文件硬链接到目的目录,小于1M的文件直接复制到目的目录。方便nfo等小文件刮削修改,大于1M的文件 硬链接到目的目录,以节约空间,2份文件只占有一份空间。

mklink 直接针对2个文件夹做硬链接,小于1m的复制,但是没有判断是否已经硬链接过。适合全新的没有硬链接过的目录

#mklink.sh sourcedir dstdir
mklink.sh /share/Download/tmp/src /share/Download/tmp/dst

dirlink.sh

设计原理:针对输入原路径下一级子目录判断是否有文件islinked.lk, 有这个文件就跳过,没有就硬链接这个子目录到目的目录生成对应的子目录。 小于1M的文件复制,大于1M的文件硬链接。

可以直接修改脚本源目录,目的目录参数,也可以从参数$!,$2输入源目录,目的目录。 此脚本和mklink.sh区别在于,将检查每个目录是否已经被硬链接过,已经连接过的将跳过去不再硬链接。 原理是在源文件夹目录下添加文件islinked.lk,通过检测这个文件来判断是否硬链接过

SRC="/share/Download/tmp/src/movie"
DST="/share/Download/tmp/dst/movie"

注意:src目录下面的文件需要放到各个子目录下面去,例如src/anime/amine1,src/tv/tv2,这样才能保证islinked.lk工作正常 目录设置可以直接修改脚本,也可以命令行参数输入

#dirlink.sh sourcedir dstdir
dirlink.sh /share/Download/tmp/src /share/Download/tmp/dst

重新建立连接,一次性删除所有islinked.lk文件

find /share/Download/tmp -name "islinked.lk" | xargs rm -f

替换前面的路径/share/Download/tmp为你自己的路径,操作和rm相关的命令一定注意不要输入错误,删错文件代价极大!

一次性硬链接多个目录

如下所示脚本link.sh

#!/bin/sh
/share/Download/source/dirlink.sh /share/Download/source/anime /share/Download/dst/anime
/share/Download/source/dirlink.sh /share/Download/source/movie /share/Download/dst/movie
/share/Download/source/dirlink.sh /share/Download/source/tv /share/Download/dst/tv

修改限制2M大小以下的复制

修改脚本参数FILEGIG,原脚本是1M大小,修改为下面这样就是2M大小

FILEGIG=2000000c

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须在同一目录

这个脚本使用,需要手动修改脚本中的分类,下面这一行!

if [[ "$torrent_category" == *"movies"* || "$torrent_category" == *"series"* || "$torrent_category" == *"documents"* || "$torrent_category" == *"operas"* ]]

$torrent_category 是qBittorrent分类名称,也是目录名称!

注意事项

  • 注意Linux权限,如果运行出错,请检查所使用的的用户和用户组权限。目的目录是否可写!

使用声明

数据无价,小心操作。 本脚本(除autolink.sh外)没有rm删除,只有mkdir和cp, 最多搞乱文件系统。但要注意不要把目的地目录设置到系统目录去了。 一切后果自负

感觉对你有帮助,来个star吧

Contributing

  1. Fork it ( https://github.com/appotry/PTtool/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

pttool's People

Contributors

appotry avatar maoyun avatar zexindai avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

pttool's Issues

mklink运行后没产生硬链接文件

帮忙看下是哪里有问题吗?运行后没有报错,但去目的文件夹目录下看也没有产生硬链接的文件。

找到原因了,目录中的特殊字符需要用转义字符。

用mklink 链接后,再次用dirlink 又会链接一次

第一次用mklink

SRC="/volume1/Downloads/src"
DST="/volume1/Downloads/dst"

源目录 /volume1/Downloads/src/Anime/Cells At Work S02 2021 1080p WEB-DL H264 AAC-wev123 硬链接到 /volume1/Downloads/dst/Anime/Cells At Work S02 2021 1080p WEB-DL H264 AAC-wev123
硬链接后,修改了目录 dst/Anime/Cells At Work S02 2021 1080p WEB-DL H264 AAC-wev123 为 dst/Anime/Cells at Work ,并增加了子文件夹,如下(主要是方便infuse 读取封面)
Snipaste_2021-11-27_22-29-43

ps: /volume1/Downloads/ 挂载在windows 为 Y:

后面由于 /volume1/Downloads/src/Anime 目录下增加了新的文件,于是使用 dirlink

SRC="/volume1/Downloads/src/Anime"
DST="/volume1/Downloads/dst/Anime"

发现Cells At Work S02 2021 1080p WEB-DL H264 AAC-wev123 这个文件夹又被硬链接了
dirlink 硬链接的时候,应该判断/volume1/Downloads/src/Anime/Cells At Work S02 2021 1080p WEB-DL H264 AAC-wev123 目录下的islinked.lk 文件,怎么又链接了该目录呢

【求教】硬链接的空间占用问题

作者你好:
本人使用硬链接方式链接了一个目录,将Organized链接到Source上,按理说硬链接不会造成实际的空间占用,本人通过du命令验证也是如此,但是群晖系统却将文件空间计算了两次,请问什么情况会导致如此问题?是否与群晖的文件系统和RAID方式有关?

du命令查看实际空间占用:
image

群晖系统计算空间占用:
image

DSM文件系统格式:Btrfs,RAID类别:SHR(Synology Hybrid RAID)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.