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 Shell qui recherche automatique des répertoires qui se remplissent


Sujet :

Shell et commandes GNU

  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 34
    Par défaut Script Shell qui recherche automatique des répertoires qui se remplissent
    Bonjour,

    Je reviens vers vous encore une fois car je suis bloqué sur un script que j'essai de mettre en place.
    Je vous explique.
    Je cherche à remonter automatiquement des répertoire (dans une arborescence spécifique) qui contiennent des nouveau fichier. Une fois ces répertoires remonter je dois leur faire subir un traitement bien particulier..

    Exemple:
    Arbo
    /rep1/rep2/rep3=> fic1

    rep1/rep2/rep5=>

    Dans mon cas je cherche à remonter automatiquement le nom du répertoire rep3 (car il contient des fichiers) et stipuler qu'il s'agit de REP1 comme répertoire de référence.

    Pour la recherche j'utilise ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rep_quarantaine= find . -type d -not -empty  -name (nom du repertoire)
    Je bloque car je souhaite afficher le nom rep1 à chaque fois qui est contenu dans $rep_quarantaine

    Merci pour votre aide.

  2. #2
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    find . -type d -not -empty -atime -1

    ou ctime /mtime comme tu veux...

    remontera que la liste des repertoires ayant eu des acces recents

    une exemple rapide :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    francois@baal:~/Téléchargements$ mkdir test
    francois@baal:~/Téléchargements$ mkdir test/a
    francois@baal:~/Téléchargements$ touch test/a/t
    francois@baal:~/Téléchargements$ mkdir test/b
    francois@baal:~/Téléchargements$
    francois@baal:~/Téléchargements$ cd test
    francois@baal:~/Téléchargements/test$ find . -type d -not -empty  -atime -1
    .
    ./a
    francois@baal:~/Téléchargements/test$ cd .. && rm -rf test
    francois@baal:~/Téléchargements$
    y'a "t" dans "a " comme nouveau fichier donc ça remonte...

    a toi d'adapter mais tu y etais presque.

    tu peux utiliser cut ou awk ou sed pour selectionner que l'info pertinante.

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

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

    Perso, je n'ai pas compris la question.

    Qu'est-ce que REP1 ? C'est le répertoire de recherche ? Donc '.' ? REP1 est bien différent de rep1 ?

    Pour récupérer rep1 à partir de rep_quarantaine, on a ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     find . -type d -not -empty -name (nom du repertoire) | awk -F'/' '{print $2;}'
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     echo "$rep_quarantaine" | awk -F'/' '{print $2;}'

  4. #4
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 34
    Par défaut
    C'est tout à fait ca Flodelarab ! Merci bcp !

    Cela donne ca en fait !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    #!/bin/sh
     
    cd /repertoire_de_base/
    projet_quarantine=`find . -type d -not -empty  -name quarantine| awk -F'/' '{print $2;}'`
    rep_quarantine=`find . -type d -not -empty  -name quarantine`
    rep_rejoue=`find . -type d -name outgoing | grep $projet_quarantine`
    nb_quarantine=`find . -type d -not -empty  -name quarantine| awk -F'/' '{print $2;}' |wc -l`
     
    echo "nombre de projet contenant des fichiers en quarantaine: $nb_quarantine"
    echo "Projet qui contient des donnees en quarantaine:"
    echo "$projet_quarantine"
    echo "Repertoire du projet permettant le rejeu des donnees: $rep_rejoue "
    echo ""
    echo ""
     
    for i in `seq 1 $nb_quarantine`;
    do
    echo "traitement $i"
    echo "traitement $rep_quarantine"
    echo "rejoue dans $rep_rejoue"
    done
    Merci pour votre aide.. je cherche via la boucle for à faire le traitement quand il y a plusieurs répertoires en quarantaine qui ressortent.. Je vous met le script une fois terminée .. (pas pour demain -_-)..

    Encore un fois merci

  5. #5
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 376
    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 376
    Par défaut
    Bonjour,

    Citation Envoyé par chris -_- Voir le message
    je cherche via la boucle for à faire le traitement quand il y a plusieurs répertoires en quarantaine qui ressortent.. Je vous met le script une fois terminée .. (pas pour demain -_-)
    S'il y a des espaces dans le nom de tes répertoires (ou fichiers), la boucle for risque grandement de te poser problème

Discussions similaires

  1. Diaporama qui recherche automatiquement les nouvelles photos
    Par abtoons dans le forum VBA PowerPoint
    Réponses: 0
    Dernier message: 25/08/2015, 17h04
  2. Réponses: 4
    Dernier message: 10/04/2008, 14h51
  3. Creer automatiquement des répertoires
    Par phoenix75 dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 15/02/2008, 12h09
  4. Comment indexer et rechercher dans des répertoires ?
    Par elitost dans le forum Windows XP
    Réponses: 2
    Dernier message: 18/07/2006, 21h01
  5. Réponses: 7
    Dernier message: 30/05/2006, 14h08

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