Salut,

Il y a quelques temps j'avais présenté sur mon blog le Docker de Banixc qui permet de supprimer des .torrents de ruTorrent selon leur ratio de partage et/ou seedtime, le tout selon l'espace libre qu'on veut garder sur le serveur en question.

J'utilise plusieurs Dockers de ruTorrent et j'ai configuré son outil pour chaque client afin qu'il garde toujours 80% d'espace libre et supprime en priorité les .torrents les plus anciens (seedtime de 14 jours mini si besoin de faire de la place).

Voici le fichier de configuration d'un des clients : spécificité, là je demande un ratio d'espace libre de 50%

module.exports = {
    // check interval in seconds
    interval: 180,

// front end url for rutorrent
url: "https://dlold.domain.com/",

// delete old torrents and free up space when used space exceeds the following ratio
ratio: 0.5,

// When freeing up space, delete all torrents with a share ratio higher than 10 first (set to 0 to disable)
// (criterion: when UploadedSize >= 10 * TotalSize, affects downloading torrents too)
maxShareRatio: 0,

// delete torrents with seed time higher than 86400 * 3 seconds
maxSeedTime: 1209600, //secondes = 14 jours

// ignore (do not delete) all torrents with tag "keep" set
keepTag: "",

// exempt newly added torrents for 300s
newTorrentsTTL: 600,

// leave empty if not using basic auth
basicAuthUsername: "aerya",
basicAuthPassword: "MQU&6na&nLl5@SOAG%2Nl5cHU9Ky7zn",

maxConcurrentHttpRequests: 8,
};

Et voici le log du travail en cours. Pour atteindre le 50% d'espace disque que je demande il va commencer par supprimer les .torrents (et les données) des fichiers les plus anciens, d'au moins 14 jours de seedtime.
Si par exemple j'avais voulu que ça ne concerne pas mes fichiers tagués "MEPHISTO", j'aurais pu ajouter ce tag à la ligne keepTag: "",

rutorrent-auto-delete@0.0.1 start /usr/src/app
node server.js

Current ratio is 0.81 (2957.0 GB / 3665.3 GB) need to free up 1124.3 GB
Deleting 1 files (to free up 2.6 GB)
- Deleting aaaa (2.6 GB)

Current ratio is 0.81 (2971.9 GB / 3665.3 GB) need to free up 1139.2 GB
Deleting 1 files (to free up 20.6 GB)
- Deleting bbbb (20.6 GB)

Current ratio is 0.78 (2862.8 GB / 3665.3 GB) need to free up 1030.2 GB
Deleting 1 files (to free up 8.6 GB)
- Deleting cccc (8.6 GB)

Current ratio is 0.78 (2876.3 GB / 3665.3 GB) need to free up 1043.7 GB
Deleting 1 files (to free up 15.1 GB)
- Deleting dddd (15.1 GB)

Current ratio is 0.79 (2888.6 GB / 3665.3 GB) need to free up 1055.9 GB
Deleting 1 files (to free up 9.4 GB)
- Deleting eeee (9.4 GB)

Current ratio is 0.79 (2879.3 GB / 3665.3 GB) need to free up 1046.6 GB
Deleting 1 files (to free up 2.3 GB)
- Deleting ffff (2.3 GB)

Current ratio is 0.79 (2893.0 GB / 3665.3 GB) need to free up 1060.4 GB
Deleting 1 files (to free up 6.5 GB)
- Deleting gggg (6.5 GB)

NB : l'espace disque ne baisse pas de manière cohérente vu que d'autres clients BitTorrent/Usenet téléchargent en même temps.

Hey, merci pour ce partage. Je pense que je vais faire un petit update et ajout dans le script en PR. Comme choix par label, path (c'est mon cas), date et surtout pouvoir suivre les liens symboliques 🙂 et tout supprimer pas seulement le torrent

Hello,

j'ai testé vite fait, ça a l'air de bien fonctionner tant qu'il trouve des torrents a supprimer.
Par contre, s'il y a besoin de faire du ménage mais qu'aucun torrent n'est éligible, ca plante :-(

`Current ratio is 0.78 (3453.7 GB / 4432.3 GB) need to free up 40.8 GB
/usr/src/app/server.js:55
if (parsedData[key].addTime && parsedData[key].addTime < config.newTorrentsTTL) {
^

TypeError: Cannot read property 'addTime' of undefined
at deleteTorrent (/usr/src/app/server.js:55:49)
at Request.callback (/usr/src/app/server.js:104:21)
at Request.self.callback (/usr/src/app/node_modules/request/request.js:185:22)
at Request.emit (events.js:182:13)
at Request.<anonymous> (/usr/src/app/node_modules/request/request.js:1161:10)
at Request.emit (events.js:182:13)
at IncomingMessage.<anonymous> (/usr/src/app/node_modules/request/request.js:1083:12)
at Object.onceWrapper (events.js:273:13)
at IncomingMessage.emit (events.js:187:15)
at endReadableNT (
stream_readable.js:1086:12)
npm ERR! code ELIFECYCLE
npm ERR! errno 1`

    Barbidouille Oui le code est un sac de nouille 😃 Je vais essayer de faire un clean ce soir. Puis ajouter des feature ensuite.

    un an plus tard

    Bonsoir,

    Cela m'intéresserait assez d'utiliser ce script. Est-ce qu'il y a un tuto ou une aide pour exploiter cela sur rtorrent hors docker ?!

    Salut, c'est indépendant de Docker. Dans la configuration du script tu mets l'URL de ton ruTorrent + user:pwd.

    EDIT : j'avais mal compris ta question je pense...
    Cet outil là tourne dans un container Docker, pas d'autre solution non. Il existe sans doute des outils équivalent en BASH, faut fouiller sur Github/Reddit.

      Aerya
      OK utilisable seulement avec Docker donc. Je vais regarder ce que je trouve ailleurs.

      Merci !

      Tu peux installer Docker partout donc c'est plutôt userfriendly. Tu peux même l'installer sur ton PC (Windows ?) et t'occuper de ton ruTorrent sur ton serveur dédié.

      9 mois plus tard

      Bonjour @Aerya
      J'ai un soucis avec ce conteneur. J'utilise un rutorrent sous docker avec ce conteneur en complément.
      Le conteneur détecte bien rutorrent et le ratio dépasse bien 0.8 de l'espace occupé.
      Mais quand le conteneur se lance, j'ai cela...

        Alandil oula docker avec un last update de 3 ans... avec tout les changements de ru/rtorrent récemment ça risque d'être un poil compliqué à réparer 😅

          MattProd je m'attendais un peu à une réponse de ce type 😅 mais qui ne tente rien n'a rien. Peut-être que je découvrirai une autre appli 😉

          2 ans plus tard
          Répondre…