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é.

    433 Torrents. Pas mieux avec le dernier pull

    ───────────────────────────┐
    │ rtorrent-cleaner - report │
    └───────────────────────────┘
    
     ████████████████████████████ 51%
     ████████████████████████████ 61%
     remaining time: 13 secs
     status: recovering the files list from rtorrent...
    PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/local/bin/rtorrent-cleaner/src/Rtorrent.php on line 42
    

      🎉 J'ai sorti la version 0.9.3 🎉

      Cette nouvelle version par rapport à la 0.9.2 améliore quelques points

      • Il y a un tuto dans le readme pour l'image linuxserver/rutorrent ici
      • Le message d'erreur de connexion à rtorrent est plus explicite.
      • Pour l'image docker on peut augmenter la taille de la mémoire limite de php (memory_limit)
      • Quelques modifications de code mineur.

      Aerya Il faut que tu augmentes la mémoire limite de php, je viens de modifier l'image docker pour le faire.

      docker pull magicalex/docker-rtorrent-cleaner:latest
      docker run -it --rm \
        -e PHP_MEMORY_LIMIT=256M \
        -v /home/aerya/mnt:/downloads \
        -v /run/php:/run/php \
        magicalex/docker-rtorrent-cleaner report --scgi=/run/php/.rtorrent.rc

      Merci !!!! @Magicalex 🙂

      Je sais pas si je dois sourire ou pleurer... En tous cas je dois revoir mes scripts !

      Total recoverable space | 1.85 To

        Aerya Dis moi si tu vois des erreurs dans les fichiers manquant et en trop, ça m'intéresse les utilisateurs comme toi qui ont beaucoup de données à traiter.

        Le script s'est exécuté assez rapidement?

        Ça va oui surtout que la machine en question est déjà bien occupée. J'ai pas d'erreur dans les fichiers qui sont à effacer.

           | Total recoverable space        | 1.84 To    |
        +------+---------------------------------------------------------------------------------------------------------+------------+
        
        No missing files.
        
        time: 8min 49sec 343ms, torrents: 439, free space: 3.1 To
        

        Les gens j'ai besoin de votre avis. Les options --scgi= et --port je ne peux pas les rendre obligatoire puisque comme leurs nom l'indique c'est des options... 😅
        Le problème c'est que sans ses options rtorrent-cleaner ne fonctionne, donc elles sont... obligatoire.

        Soit je crée un système de fichier de configuration par exemple ~/.rtorrent-cleaner.yml et on renseigne le hostname scgi/port/socket. Soit on passe tout en argument ou les deux.

        Par exemple

        rtorrent-cleaner report 127.0.0.1 5000 # cette syntaxe je l'a trouve pas très claire...
        rtorrent-cleaner report 127.0.0.1:5000
        rtorrent-cleaner report /run/php/.rtorrent.rc
        rtorrent-cleaner report --config=~/.rtorrent-cleaner.yml

        Voilà, j'aimerai bien avoir votre avis sur la question.

        Autant le passer en arguments, si jamais certains modifient le port voir l'IP (pour du distant).

          Aerya en distant rtorrent-cleaner ne fonctionne pas dans la mesure ou j'ai besoin d'avoir accès aux fichiers localement.
          A moins de me connecter en ssh mais bon...

            Magicalex Effectivement... mybad. Je l'aurais quand même passé en argument, ça me semble être le plus ouvert pour que chacun puisse l'adapter si besoin.

            Aerya ça m'a intrigué cette histoire de rtorrent-cleaner à distance.

            Du coup j'ai fais des tests et pour se connecter en sftp via php il existe une extension php-ssh2
            Voici un bout de code qui fonctionne avec la lib symfony/finder

            #!/usr/bin/env php
            <?php
            
            require 'vendor/autoload.php';
            
            use Symfony\Component\Finder\Finder;
            
            $session = ssh2_connect('domain.tld', 22);
            ssh2_auth_pubkey_file(
                $session,
                'username',
                '/home/username/.ssh/id_rsa.pub',
                '/home/username/.ssh/id_rsa'
            );
            
            $sftp = ssh2_sftp($session);
            
            $finder = new Finder();
            $finder->in('ssh2.sftp://'.intval($sftp).'/path/to/folder')->files()->depth(0);
            
            foreach ($finder as $file) {
                echo 'filename: '.$file->getPathname().PHP_EOL;
            }

            Je laisse ça ici, ça peut inspirer du monde. Mais perso je vais pas le rajouter au code sauf si quelqu'un fait une PR sur github.
            Je préviens, les performances sont pas folles en sftp et ça va complexifier grandement le fonctionnement de rtorrent-cleaner.

            Sinon je pense que tu as raison @Aerya je vais passer le paramètre en argument ça sera plus logique et élégant.

            🎉 J'ai sorti la version 0.9.4 🎉

            Cette nouvelle version par rapport à la 0.9.3 améliore quelques points

            • Le message d'erreur de connexion à rtorrent est plus explicite.
            • Suppression des options --scgi= et --port= par un argument.

            Pour la dernière amélioration ça peut paraître inutile mais en réalité c'était des options que je ne pouvais pas vous forcer à renseigner. Comme j'utilise symfony/console j'essaye de me conformer un maximum à la norme.

            Quelques exemples pour vous montrer ce qui change.

            rtorrent-cleaner report 127.0.0.1:5000 # hostname:port
            rtorrent-cleaner report --exclude-dirs=movies 127.0.0.1:5000
            rtorrent-cleaner report --exclude-files=*.srt /run/php/.rtorrent.sock
            
            rtorrent-cleaner rm /run/php/.rtorrent.sock
            
            rtorrent-cleaner torrents localhost:5000
            
            rtorrent-cleaner mv /run/php/.rtorrent.sock /home/user/old
            rtorrent-cleaner mv localhost:5000 /home/user/old

            Si vous avez des difficultés pour refaire fonctionner le script n'hésitez à vous manifester ici.

            Pour les boulets comme bibi il manque une option pour Quitter quand tu lances le rm sans le forcer... Parce que confirmer à la main 6000+ suppressions c'est long ^^ '

              Aerya tu parles de l'option --assume-yes ?

              rtorrent-cleaner rm --assume-yes /run/php/.rtorrent.sock

              Sinon tu fais ctrl+ c ou alors j'ai pas compris ta question.

              Le ctrl+C n'ayant pas fonctionné chez moi, j'ai pensé qu'il était opportun d'ajouter un Quit au Yes/No. Mais ça devait venir de la latence entre mon PC et le serveur.

                Aerya oui pourquoi pas c’est pas compliqué à ajouter. Je ferai ça pour la prochaine version. J’attends un peu les retours de tout le monde.

                21 jours plus tard

                🎉 La version 0.9.5 est sortie 🎉

                Cette nouvelle version par rapport à la 0.9.4 améliore quelques points

                • Refactorisation du code pour améliorer les performances
                • Ajout de la commande debug pour m'aider à trouver les bug à l'avenir
                • Ajout de la date à la fin du rapport
                • Ajout de l'option quit pour quitter le script @Aerya
                • Ajout d'un lien sur github pour me soutenir 💰😅

                Pour la commande debug, c'est un outil pour moi. Lorsque vous avez des résultats incohérents avec un torrent, donnez moi le retour de cette commande. Vous pouvez trouver le hash du torrent dans rutorrent (onglet General).

                rtorrent-cleaner debug 127.0.0.1:5000 <hash_du_torrent>

                🎉 La version 0.9.6 est sortie 🎉

                Cette nouvelle version par rapport à la 0.9.5 améliore quelques points

                • Changement du dépôt docker: docker pull magicalex/rtorrent-cleaner
                • Modification de la gestion des erreurs
                • Ajout de la variable d'environnement PHP_TIMEZONE pour avoir la bonne date à la fin du rapport
                • Petit fix de la fonction redownload() pour les torrents avec des fichiers manquants.

                ⚠️ Le dépôt de l'image docker a changé: https://hub.docker.com/r/magicalex/rtorrent-cleaner ⚠️

                docker pull magicalex/rtorrent-cleaner
                docker run -it --rm \
                  -e PHP_MEMORY_LIMIT=128M \
                  -e PHP_TIMEZONE=Europe/Paris \
                  -v /path/to/rutorrent/downloads:/downloads \
                  -v /run/php:/run/php \
                  magicalex/rtorrent-cleaner:latest report /run/php/.rtorrent.sock

                Maintenant pour chaque version de rtorrent-cleaner il y aura un tag latest, 0.9.6, 0.9.7, etc.

                magicalex/rtorrent-cleaner:latest
                magicalex/rtorrent-cleaner:0.9.6