IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Script de suppression de dossier


Sujet :

Shell et commandes GNU

  1. #1
    Nouveau candidat au Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Février 2016
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2016
    Messages : 1
    Par défaut Script de suppression de dossier
    Bonjour à tous,

    je viens vers vous aujourd'hui car j'ai besoin de votre aide pour réaliser un petit script d'effacement de dossier en bash.

    Je m'explique :

    Dans mon projet, je possède un dossier MailsAttachment, dans celui-ci nous retrouvons un dossier pour chaque utilisateur de mon site, numéroté de 1 à n (n étant le dernier utilisateur donc). Dans chacun de ces dossiers utilisateurs, nous retrouvons un dossier pour chaque mail ouvert, qui contient par exemple les fichiers joints au mail.

    Je souhaite donc mettre en place une crontask qui exécuterai ce script toutes les 24H, ce script aurai donc pour effet de supprimer le dossier des mails de chaque utilisateurs à partir du moment où ce dossier existerait depuis plus de 24H.

    Je résume :

    Exemple d'arborescence

    >MailsAttachment

    >1 -----> correspond au dossier du premier utilisateur

    >1 -----> correspond au dossier temporaire du mail le plus ancien qui n'a pas encore dépassé les 24H

    >2

    >3

    >4 -----> correspond au dossier temporaire du mail le plus récent qui n'a pas encore dépassé les 24H (le plus récent donc)

    >2 -----> correspond au dossier du deuxième utilisateur

    >1 -----> correspond au dossier temporaire du mail le plus ancien qui n'a pas encore dépassé les 24H

    > ...

    >n -----> correspond au dossier temporaire du mail le plus récent qui n'a pas encore dépassé les 24H

    >3 -----> correspond au dossier des mails temporaire du dernier utilisateur

    Nous avons donc ici 3 utilisateurs, le premier utilisateur possède 4 dossiers temporaires correspondants donc aux 4 derniers mails qu'il a reçu datant de moins de 24H. Le deuxième utilisateur possède n dossier de mails qu'il a reçu dans les dernières 24H, etc etc. Ceci est un exemple bien sûre, dans la réalité nous retrouverons beaucoup plus d'utilisateurs ainsi que beaucoup plus de mails par utilisateurs.

    Le script devrait donc parcourir le dossier de chaque utilisateurs, et supprimer dans ce dossier les dossiers qui existent depuis plus de 24H.

    Cela aura donc pour effet de garder en mémoire les pièces jointes des mails 24H seulement, au delà de ça elles seront supprimées.

    Je m'occupe de toute la partie crontask, seulement ayant très très peu de connaissance en Bash j'avoue ne pas être capable de réaliser ce script, et je pense que pour quelqu'un qui connait bien le langage cela devrait être largement à porté (dû moins je pense).

    Bonne fin de journée et merci à vous

  2. #2
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 288
    Par défaut
    Bonjour

    Oui mais là, il y a incompréhension entre nous. Les internautes ne sont pas là pour faire ton travail pour lequel tu touches un salaire.

    Je vois bien un énoncé mais pas de difficulté à résoudre.
    A toi de te former. (Les tutoriels sont foisonnants sur internet)
    A toi de travailler.
    A toi d'écrire ce script.

    Si c'est le point de départ qui manque, le voici:
    • Crée un fichier texte.
    • Récupère le chemin de bash par Which bash.
    • Ecris le shebang sur la première ligne de ton fichier: #!/bin/bash.
    • Puis écris les commandes idoines. (Probablement à base de find)
    • Enfin, ajoute ton script dans le crontab.

  3. #3
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 494
    Par défaut
    D'ailleurs de quel façon comptes tu déterminer la date de ton mail à partir du dossier ?
    Comment sont nommer les dossiers ?

  4. #4
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 653
    Par défaut
    j'en rajoute une couche :
    Je m'occupe de toute la partie crontask
    ce n'est probablement pas ce qui va te prendre le plus de temps et d'énergie !
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 347
    Par défaut
    Bonjour,

    Pour aider un peu, la commande find est suffisante pour ton besoin, pas besoin de créer un script.
    Pour connaitre la syntaxe de find avec toutes options: man find ou info find.

Discussions similaires

  1. Suppression définitive Dossiers sur le bureau Mandrake
    Par goule71 dans le forum Mandriva / Mageia
    Réponses: 3
    Dernier message: 01/11/2005, 15h39
  2. [batch] problème de suppression de dossier
    Par july dans le forum Windows
    Réponses: 2
    Dernier message: 22/07/2005, 11h39
  3. suppression de dossier???
    Par t-ma&&& dans le forum C++
    Réponses: 8
    Dernier message: 11/12/2004, 14h54
  4. [RMAN] script de suppression
    Par alxkid dans le forum Oracle
    Réponses: 3
    Dernier message: 01/09/2004, 07h51
  5. Script de suppression d'archives sous WINDOWS
    Par alxkid dans le forum Administration
    Réponses: 3
    Dernier message: 18/08/2004, 11h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo