Le script commence a être plus robuste maintenant. J'ai encore moyen d'optimiser deux trois petits détails.
Je vais dans les jour qui vienne sortir la version 0.9.1.

Je considère le script stable, j'avais un bug sur le listing des fichiers manquant mais je n'arrive pas à le reproduire...
Au passage on parle du script sur reddit :

3 mois plus tard

Merci pour ce script, c'est parfait, j'ai juste généré un rapport et supprimé à la main car j'ai un gros dossiers Partage puis échanger des fichiers non référencés dans rtorrent (photos, etc) via cakebox.
Si un jour il est possible d'ignorer un dossier, ça serait encore plus que parfait ;-)

Merci pour tout ton travail !

[EDIT] Évidemment avec la commande grep on fait le tri rapidement (je ne maitrise pas encore)

    Aedonus Alors effectivement on peut pas tout à fait exclure des dossiers.
    Je vais rajouter ça dans la prochaine version. Je vais voir comment je peux faire ça...

    @Aedonus @laster13 j'ai sortie une nouvelle version la 0.9.1

    Pour ignorer des fichiers vous devez utiliser l'option --exclude-files ou juste -f
    Pour ignorer des dossiers vous devez utiliser l'option --exclude-dirs ou juste -d

      23 jours plus tard

      Salut, chez moi tout fonctionnait avec l'option RPC. Depuis... Je ne comprends pas. Un peu d'aide serait la bienvenue.
      Je me prends la fameuse erreur

      Unable to connect to rtorrent. Check if rtorrent is running.

      Docker ruTorrent : linuxserver
      rtorrent.rc

      execute = {sh,-c,/usr/bin/php7 /usr/share/webapps/rutorrent/php/initplugins.php abc &}
      execute.nothrow = rm,/run/php/.rtorrent.sock
      network.scgi.open_local = /run/php/.rtorrent.sock
      schedule = socket_chmod,0,0,"execute=chmod,0660,/run/php/.rtorrent.sock"
      schedule = socket_chgrp,0,0,"execute=chgrp,abc,/run/php/.rtorrent.sock"
      log.open_file = "rtorrent", /config/log/rtorrent/rtorrent.log
      log.add_output = "info", "rtorrent"
      min_peers = 1
      max_peers = 1500
      max_uploads = 140
      download_rate = 0
      upload_rate = 0
      method.set_key=event.download.finished,move_complete,"execute=cp,-al,$d.base_path=,/downloads/unionfs/"
      directory = /downloads/incoming
      session = /config/rtorrent/rtorrent_sess
      schedule = low_diskspace,5,60,close_low_diskspace=1000G
      ip = xxx
      bind = 0.0.0.0
      port_range = 49161-49161
      check_hash = yes
      encryption = allow_incoming,try_outgoing,enable_retry
      dht = off
      dht_port = 6881
      #scgi_port = 0.0.0.0:5000
      encoding_list = UTF-8
      

      Si je décommente le SGI (ou ajoute la ligne mentionnée sur le GitHub, rtorrent plante).

      J'ai tenté ces commandes, en vain

      docker run -it --rm \
      -v /home/aerya/mnt/:/downloads \
      --network nginx-proxy-manager_default \
      --link rutorrent:rtorrent \
      magicalex/docker-rtorrent-cleaner report --scgi=localhost --port=5000
      docker run -it --rm \
      -v /home/aerya/mnt/:/downloads \
      --network nginx-proxy-manager_default \
      --link rutorrent:rtorrent \
      -v /run/php/.rtorrent.sock:/run/php/.rtorrent.sock \
      magicalex/docker-rtorrent-cleaner report --scgi=/run/php/.rtorrent.sock

      Dans ton Docker ruTorrent tu as bien
      -v /run/php:/run/php/
      si j'en crois ta 2e commande ?

      moi j'ai mappé /opt/appdata/rutorrent/sock donc ça donne

      docker run -it --rm \
          -v /mnt/downloads/rutorrent:/mnt/downloads/rutorrent \
          -v /opt/appdata/rutorrent/sock/.rtorrent.sock:/run/php/.rtorrent.sock \
          --network plexguide \
          --link rutorrent:rtorrent \
          magicalex/docker-rtorrent-cleaner report --scgi=/run/php/.rtorrent.sock

      Bonjour,

      Je viens de tester la config ci dessous avec linuxserver/rutorrent
      https://mondedie.fr/d/10037-rtorrent-cleaner-un-script-pour-liberer-de-la-place-sur-votre-seedbox-!/223

      J'ai placé le script dans /usr/local/bin

      Du coup je tape rtorrent-cleaner report et ca fonctionne.

      execute = {sh,-c,/usr/bin/php7 /usr/share/webapps/rutorrent/php/initplugins.php abc &}
      execute.nothrow = rm,/run/php/.rtorrent.sock
      network.scgi.open_local = /run/php/.rtorrent.sock
      schedule = socket_chmod,0,0,"execute=chmod,0660,/run/php/.rtorrent.sock"
      schedule = socket_chgrp,0,0,"execute=chgrp,abc,/run/php/.rtorrent.sock"
      log.open_file = "rtorrent", /config/log/rtorrent/rtorrent.log
      log.add_output = "info", "rtorrent"
      min_peers = 40
      max_peers = 1200
      max_uploads = 15
      download_rate = 90000
      upload_rate = 30000
      # schedule = watch_directory_1,5,5,"load.start=/downloads/watched/*.torrent"
      directory = /home/yohann/local/rutorrent
      session = /config/rtorrent/rtorrent_sess
      schedule = low_diskspace,5,60,close_low_diskspace=5000M
      # ip = 178.32.28.51
      bind = 0.0.0.0
      port_range = 5000-5000
      check_hash = no
      encryption = allow_incoming,try_outgoing,enable_retry
      #dht = auto
      #dht_port = 6881
      # network.http.ssl_verify_peer.set=0
      # scgi_port = 0.0.0.0:5000
      encoding_list = UTF-8
      # system.umask.set = 022
      directory.default.set = /home/yohann/local/rutorrent
      throttle.max_downloads.global.set = 500
      throttle.max_uploads.global.set = 50
      system.file.allocate.set = 0
      max_downloads = 10
      throttle.global_up.max_rate.set_kb = 0
      pieces.preload.type = 2
      network.http.dns_cache_timeout.set = 25
      network.send_buffer.size.set = 12M
      network.receive_buffer.size.set = 4M
      throttle.min_peers.seed.set = 0
      throttle.max_peers.seed.set = -1
      

      Vous pouvez me donner la config définitive pour linuxserver les gars? je vais la mettre dans le readme du projet.

      Hier j'ai sorti la version 0.9.2 qui je l'espère corrige ce bug issue github
      Les performances devraient même être légèrement meilleur puisque j'ai simplifié la logique.

      Si y a des erreurs merci de me le faire remonter ici ou sur le github.

      @Aerya oui je ne communique plus via l'url de rutorrent parce que c'était spécifique aux utilisateurs de rutorrent.
      Maintenant je communique directement avec rtorrent donc tout le monde peut utiliser rtorrent-cleaner (par exemple les utilisateurs de flood) et les performances sont bien meilleurs aussi.

      Voici comment je lance mon rutorrent

        rutorrent:
          image: linuxserver/rutorrent:latest
          restart: always
          container_name : rutorrent
          ports:
            - 5000:5000
            - 49161:49161
            - 49160:49160/udp
          environment:
            - TZ=Europe/Paris
            - PGID=1001
            - PUID=1001
          volumes:
            - /home/aerya/docker/rutorrent:/config
            - /home/aerya/mnt:/downloads
          labels:
            - com.centurylinklabs.watchtower.enable=true

      Et je tente de lancer le cleaner en version Docker.

      Le problème est que quand j'ajoute - /run/php:/run/php alors rTorrent est en défaut (can't connect etc). Vous êtes sûrs que vous utilisez ça avec Linuxserver ?!

        Aerya tu peux retirer le port 5000 linuxserver utilise un socket.

        Il faut que tu montes sur un volume le socket rtorrent voir ici dans la discussion

        Configuration de magicalex/docker-rtorrent-cleaner pour linuxserver/rutorrent

        docker-compose.yml

          rutorrent:
            image: linuxserver/rutorrent:latest
            restart: always
            container_name : rutorrent
            ports:
              - 49161:49161
              - 49160:49160/udp
            environment:
              - TZ=Europe/Paris
              - PGID=1001
              - PUID=1001
            volumes:
              - /home/user/docker/rutorrent:/config
              - /home/user/downloads:/downloads
              - /run/php:/run/php
            labels:
              - com.centurylinklabs.watchtower.enable=true

        script: /usr/local/bin/rtorrent-cleaner

        #!/bin/sh
        
        docker run -it --rm \
          -v /home/user/downloads:/downloads \
          -v /run/php:/run/php \
          magicalex/docker-rtorrent-cleaner $*

        Pour faire un rapport

        rtorrent-cleaner report --scgi=/run/php/.rtorrent.sock

        D'ailleurs c'est un peu nimp leur config, ils utilisent un socket et après ils vous font ouvrir le port 5000 pour scgi 🤦‍♂️

        OK merci, je retente une config.
        EDIT : Et donc, comme avant, le container ruTorrent ne fonctionne pas dès lors que j'ajoute /run/php:/run/php... Il dit qu'il ne trouve pas le .rtorrent.rc

          Aerya chez moi ça fonctionne. T'as le message d'erreur?

          EDIT: je viens d'essayer avec l'image linuxserver et ça marche de mon coté. Il faut attendre un peu quelque instant que le container finisse de s'installer mais après c'est ok.

            Au cas ou, lorsque tu fais un script, en tout cas chez moi, tu n’as pas besoin de taper
            rtorrent-cleaner report --scgi=/run/php/.rtorrent.sock
            mais juste
            rtorrent-cleaner report
            Quoique ca ne change rien je viens d'essayer ca marche aussi

              laster13 Hors sujet: Pourquoi vous utilisez l'image de linuxserver? elle a quoi comme avantage?

              C'est juste qu'à un moment donné par rapport à mon script j'avais des iowait avec l'image de @xataz, enfin je pensais que ca venait de l'image mais au final non. Du coup aujourd hui je suis resté sur celle de linuxserver par habitude mais je pourrais tout aussi bien revenir sur celle de @xataz. Et puis le challenge etait aussi de faire fonctionner rutorrent-cleaner avec l'image linuxserver 😉

              Magicalex

              [29.10.2019 21:01:40] Lien incorrect avec rTorrent. Vérifiez qu'il soit bien en cours d'exécution. Vérifiez la configuration de $scgi_port et de $scgi_host dans config.php et de scgi_port dans le fichier de configuration de rTorrent.

              Bref... Passons.

              J'utilise LinuxServer plutôt que Xataz parce qu'à l'époque avec LS j'étais certain que ce serait suivi. Je vais tester avec Xataz.

              laster13 Moi c'est le docker ruTorrent qui ne tourne plus dès que je modifie son lancement.

                Aerya le socket est bien présent sur ta machine?

                ls -al /run/php

                Y a pas de raison que cela ne fonctionne pas, je viens de tester sur ma machine avec l'image linuxserver est ça fonctionne 😕

                T'as bien modifié le script rtorrent-cleaner? Lance cette commande.

                docker run -it --rm \
                  -v /home/aerya/mnt:/downloads \
                  -v /run/php:/run/php \
                  magicalex/docker-rtorrent-cleaner report --scgi=/run/php/.rtorrent.rc

                et vérifie les logs de docker-compose

                docker-compose logs -f

                Oui le socket est présent. En revanche ça ne me sert à rien, y'a aucun ruTorrent qui se lance :

                • Celui de Xataz est en train de me chown mes fichiers (et il va lui falloir des années),
                • LinuxServer ne se lance pas, il ne trouve pas le rtorrent.rc alors qu'il est au même endroit, même droits, même contenu.
                  Je vais regarder tout ça.

                EDIT : franchement parfois c'est à se demander...j'ai rebooté la machine et LinuxServer tourne au poil. Merci de votre aide dans tous les cas 🙂

                En revanche maintenant j'ai une erreur avec Cleaner (version Docker). J'ai peut-être trop de fichiers à scanner sur le disque ? (~ 8To)

                 rtorrent-cleaner • report │
                └───────────────────────────┘
                
                 ████████████████████████████ 90%
                 remaining time: < 1 sec
                 status: recovering the files list from rtorrent...
                PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted (tried to allocate 4654928 bytes) in phar:///usr/local/bin/rtorrent-cleaner/src/Rtorrent.php on line 33

                  Aerya tu peux mettre à jour l'image docker-rtorrent-cleaner et dis moi si tu as tjrs la même erreur.

                  T'as combien de torrent à analyser?
                  Je pense qu'il va falloir changer memory_limit dans le php.ini tu dépasses de 4mo sur les 128mo autorisé.