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 :

Imbrication de scripts


Sujet :

Shell et commandes GNU

  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 179
    Par défaut Imbrication de scripts
    Hello !

    question d'optimisation, pour traiter des fichiers, je m'embête sévèrement à pratiquement utiliser un script shell pour chaque manipulation que je fais (ou presque) et donc j'imbrique mes exécutions de script les uns après les autres ce qui n'est pas très propre mais fonctionnel.

    ma question est simple, comment je pourrais tout faire tenir en un script avec ce que j'ai fait ? (j'ai tenté, et quand j'ai tenté, le résultat final n'était pas le même, donc je me dis que le fait de mettre toutes mes actions les unes à la suite des autres ça fout le bordel)

    merci pour l'aide et ci dessous l'ordre d'imbrication de mes scripts (oui je sais c'est moche) :

    - traitement.sh :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    #!/bin/sh
     
    dir='/home/switches'
     
    exec $dir/test.sh
    - test.sh :

    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
    #!/bin/bash
     
    dir='/home/switches/status'
    dir2='/home/switches'
    list=`ls $dir`
     
    for i in $list
     
    do
     
    sed '1d;2d;3d;4d;5d;6d;7d;8d' $dir/$i > $dir/$i.tmp
    cat $dir/$i.tmp > $dir/$i
    rm $dir/*.tmp
     
    done
     
    exec $dir2/test2.sh
    - test2.sh :

    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
    #!/bin/bash
     
    dir='/home/switches/description'
    dir2='/home/switches'
     
    list=`ls $dir`
     
    for i in $list
     
    do
     
    sed '1d;2d;3d;4d;5d;6d;7d;8d;9d;10d' $dir/$i > $dir/$i.tmp
    cat $dir/$i.tmp > $dir/$i
    rm $dir/*.tmp
     
    done 
     
     
    exec $dir2/test3.sh
    - test3.sh :

    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
    #!/bin/bash
     
    dir='/home/switches/description'
    dir2='/home/switches'
    list=`ls $dir` 
     
    for i in $list
     
    do 
     
    cat $dir/$i | sed  's/admin down     down/admin down/'  > $dir/$i.tmp 
    cat $dir/$i.tmp > $dir/$i
    rm $dir/$i.tmp
     
    done
     
     
    exec $dir2/test4.sh
    - test4.sh :
    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
     
    #!/bin/bash
    dir='/home/switches/status'
    dir2='/home/switches/description'
    dir3='/home/switches/final'
    dir4='/home/switches'
     
    join -o 2.1,1.3,1.4,2.4 $dir/dccis7-shintstatus $dir2/dccis7-shintdesc > $dir3/DCCIS7
    join -o 2.1,1.3,1.4,2.4 $dir/eccis1-shintstatus $dir2/eccis1-shintdesc > $dir3/ECCIS1
    join -o 2.1,1.3,1.4,2.4 $dir/occis0-shintstatus $dir2/occis0-shintdesc > $dir3/OCCIS0
    join -o 2.1,1.3,1.4,2.4 $dir/occis1-shintstatus $dir2/occis1-shintdesc > $dir3/OCCIS1
    join -o 2.1,1.3,1.4,2.4 $dir/occis2-shintstatus $dir2/occis2-shintdesc > $dir3/OCCIS2
    join -o 2.1,1.3,1.4,2.4 $dir/occis3-shintstatus $dir2/occis3-shintdesc > $dir3/OCCIS3
    join -o 2.1,1.3,1.4,2.4 $dir/occis4-shintstatus $dir2/occis4-shintdesc > $dir3/OCCIS4
    join -o 2.1,1.3,1.4,2.4 $dir/occis5-shintstatus $dir2/occis5-shintdesc > $dir3/OCCIS5
    join -o 2.1,1.3,1.4,2.4 $dir/occis6-shintstatus $dir2/occis6-shintdesc > $dir3/OCCIS6
     
    exec $dir4/import.sh

    - import.sh :

    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
    #!/bin/sh
     
    user='switch'
    pass='switch'
    base='switch'
    dir='/home/switches/final'
    list=`ls $dir` 
     
    for i in $list
     
    do
     
    mysql --local-infile -u$user -p$pass $base -e"LOAD DATA LOCAL INFILE '$dir/$i'  INTO TABLE $i FIELDS TERMINATED BY ' ' LINES TERMINATED BY '\n';"
     
    done

  2. #2
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Par défaut
    Ces scripts ne sont pas imbriqués mais enchaînés.

    A première vue, il n'y a pas de raison particulière pour qu'ils ne fonctionnent pas correctement en les concaténants dans un seul fichier, en supprimant bien sûr les exec.

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 179
    Par défaut
    désolé pour la dénomination

    ça ne marche pas dans le traitement des données en fait :/

    j'ai rajouté des sleeps entre chaque parties traitées, je me prends des messages d'erreurs de traitement alors que les scripts enchaînés fonctionnent bien, je vais continuer un peu à creuser sinon tant pis

  4. #4
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 515
    Par défaut
    Tu as quoi comme erreurs ?

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 179
    Par défaut
    en fait j'ai plus d'erreurs, j'aurais pas du en avoir de base, j'avais pas les yeux en face des trous pour certaines variables mal mises et j'avais oublié une chose aussi, c'est que je supprime des lignes en début de traitement, donc le fait de répéter N fois le script me supprimait des lignes qui n'auraient pas du

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Quel est le meilleur script PHP de portail (CMS) ?
    Par Lana.Bauer dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 187
    Dernier message: 18/10/2012, 07h45
  2. Script et XMLmodule
    Par Ph. B. dans le forum XMLRAD
    Réponses: 4
    Dernier message: 27/01/2003, 16h10
  3. quel langage choisir pour faire de script sous windows
    Par pas05 dans le forum Langages de programmation
    Réponses: 7
    Dernier message: 18/11/2002, 22h42
  4. Réponses: 2
    Dernier message: 11/07/2002, 08h31

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