Bienvenue sur le forum !

Si vous souhaitez rejoindre la communauté, cliquez sur l'un de ces boutons !

Qt 5 : 5.9.1 - Qt Creator : 4.4.0 - Qt Installer : 2.0.3 - JOM : 1.1.2 - Qt Build suite : 1.7.0 - VS Qt 5 : 2.0.0

Programme de suppression en mode "batch" avec résultat par e-mail - Linux Ubuntu

Bonsoir, bonsoir,
Avant que je me lance dans un bricolage maison, je souhaitais savoir si vous connaîtriez une appli qui propose de planifier des suppressions de dossiers(contenant plusieurs milliers de fichiers) et qui lorsqu'une tâche, ou l'ensemble, est terminée peut envoyer un rapport court(heure de fin, durée, taille libérée(Go), nombre de fichiers supprimés) par courrier électronique?
Tout ça sur une base linux.
Malgré mes recherches je n'aboutis sur aucun outil ne répondant à mes attentes. Et je ne pense pas que du shell soit une bonne solution, du moins, pour du traitement en grandes séries.

Si vous avez une solution, je suis preneur ! Sinon, Qt est mon ami, mais je risque de vous solliciter pour la compilation(en tant qu'utilisateur Windozzz :-P )

Merci à tous,
Mrico

Réponses

  • essaie l'application "ScheduledLargeFileRemoverAndEmailSenderAndCoffeeMaker.exe.sh"
    Non, je déconne :-p.
    Ton besoin est assez précis et je ne connais rien qui fasse ça. En revanche tu as très bien détaillé les tâches et chacune se fait relativement bien:
    -planification périodique : cron / anacron ou un outil propre à ta distribution
    -mail : le system mail en CLI
    -la suppression de dossier et le calcul de la taille libérée : shell ou C/C++/C++ avec Qt
    -le rapport : ça dépend de l'outil pour envoyer le mail
    Perso, j'utiliserais python qui propose un module pour chacune de ces tâches.
  • Bonjour !
    Pour ce genre d'appli je ferais le squelette en Qt bien sûr (sinon je cogne) mais le calcul de la place, la suppression... imposent le parcours récursif d'une hiérarchie de fichiers. Soit ça t'amuse de réinventer la roue soit ça t'amuse de copier/coller depuis le net ;).
    Moi c'est aucun des deux, à ta place j'utiliserais bash par exemple. Point de difficulté majeure,

    du -s <répertoire> pour savoir la taille (avant de le supprimer, hein...)
    rm -rf <répertoire> pour le supprimer
    Je ne vois qu'un aspect pouvant être délicat, c'est les droits. Il faut faire lancer ton utilitaire par un compte qui possède suffisamment de droits pour supprimer les fichiers. Mais comme tout linuxien s'adressant à un windozien je déconseille absolument root.
  • June 2016 modifié
    @mika merci pour ta proposition, malheureusement je ne connais pas python donc je me replierai sur C++. ;-)
    @PapaJaac, ta proposition est intéressante mais, selon moi, elle ne résout pas mon problème de batch? :-/
    En effet, si j'exécute le shell de manière successive, cela déclenche plusieurs suppressions simultanées..
    Là, je veux, par exemple, pouvoir glisser/déposer un dossier "à supprimer" dans une QScrollArea(ou un autre type de widget acceptant le drag&drop) et ainsi l'ajouter à une liste de suppressions en cours, et éviter que 15 suppressions s'exécutent en même temps.
    En fait, c'est dans un but très simple. Eviter d'avoir de multiples suppressions qui tournent en simultanée. Car, en cas d'erreur durant le processus, ce n'est pas une mais un ensemble de suppressions qui sont incomplètes ou annulées.
    Pouvoir maîtriser ce comportement est très utile, surtout dans ma société où l'on traite des Tera de données...

    Je suis assez surpris qu'une telle appli n'existe pas... Comment, généralement, contrôle t-on un ensemble de suppression?

    Merci beaucoup à vous ;-)
  • si j'exécute le shell de manière successive, cela déclenche plusieurs suppressions simultanées..
    J'ai probablement mal compris, parce que je ne vois pas de quoi tu parles, là.
    Le "rm" (ReMove) s'exécute au moment où on le lance.
    Ton appli peut donc lancer la 1ère suppression à un instant T, la 2è quand la première est finie, etc...
  • Toujours sous réserve d'avoir compris, tu gères comme tu veux et dans l'ordre que tu veux les éléments de la liste que tu as dans ta scroll area,
    P. ex. tu peux supprimer les moins volumineux d'abord, ou le contraire, ou 2 par 2, ou... etc.
  • Merci PapaJaac pour ces informations complémentaires. J'essaie de débuter et là faut que je me documente sur la gestion du Drag & Drop dans ma zone de tâches.
    En fait, j'utilise une ScrollArea dans laquelle je vais utiliser un listWidget mais, je suis en train de me dire, que ma ScrollArea ne sert pas vraiment puisqu'elle peut aussi posséder ses propres barres de défilement... 8-}
    Il me faut, désormais, réaliser les opérations suivantes:
    -Accepter le "drop" des dossiers dans ma... listWidget ?
    -Récupérer le chemin absolu de ce dossier pour créer une instance de mon objet "FolderToRemove" qui prend le relai sur les opérations de fond(calcul de taille, de nombre de fichiers/dossiers, heure de début du process...)
    -Afficher une barre d'avancée du process dans la listWidget
    -Permettre de mettre en "pause" le/les processus en cours
    -Implémenter le SIGNAL de fin de processus qui déclenchera l'émission du mail.

    Bien... Allez, au travail! :-)

    Et encore un GRAND merci.
    Mrico
  • Évidemment si tu veux pouvoir interrompre ou mettre en pause une suppression en cours tu ne peux utiliser rm.
    Mais à mon avis tu devrais être au clair sur l'ensemble des fonctionnalités et même sur les choix techniques (et même avoir conçu un prototype qui fonctionne sur un répertoire-test) avant de décider du type de widget dans lequel tu vas dropper. L'IHM, c'est à la fin ! ;)
  • Bon courage bien sûr !
Connectez-vous ou Inscrivez-vous pour répondre.