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 :

Variabiliser commande et options


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 157
    Par défaut Variabiliser commande et options
    Bonjour,

    Le problème est trop ardu pour que je puisse m'en sortir seul.
    Aussi je vous serai reconnaissant de bien vouloir m'aider m'aider.


    Voici ma commande principale

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ssh SERV_X "Cde /REPERTOIRE/server.log.AAAA-MM-JJ.extension |grep -an 'JJ/MM/AAAA HH'| head -1|cut -
    
    d':' -f1")

    extension : est soit ".tar.gz" ou ".tar"
    Cde : est soit cat ou zcat suivant l'extension

    Ce qui est connu préalablement est :
    La date du log au format AAAA-MM-JJ
    Le nom du serveur SERV_X
    L'heure à l'intérieur du log au format HH


    Ce que je souhaiterai faire
    1 - Trouver dans quel répertoire se trouve le log ayant pour occurence AAAA-MM-JJ
    2 - Variabiliser ce "REPERTOIRE"
    3 - Variabiliser le log trouvé "server.log.AAAA-MM-JJ.extension"
    4 - Variabiliser "Cde" qui devient cat si c'est un fichier .tar ou zcat si c'est un fichier .tar.gz
    5 - Variabiliser HH
    6 - A partir du nom du log server.log.AAAA-MM-JJ.extension extraire AAAA-MM-JJ puis le transformer et le variabiliser en JJ/MM/AAAA.

    En résumé je veux lancer le script avec 3 arguments
    ./mon_script SERV_X AAAA-MM-JJ HH

    Merci par avance de votre aide.

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 134
    Par défaut
    Et qu'as-tu déjà fait ?
    Montre nous l'avancement de ton script, nous pourrons peut-être t'aider à le corriger...
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    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,

    Pourrais-tu aussi préciser le but de ta commande principale ?

    Cordialement.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 157
    Par défaut
    Depuis un serveur principal, récupérer un bout de log à une heure précise sur le serveur concerné. Cela correspond à une erreur remontée par la supervision.

    En fait j'ai des lacunes en script shell, je bloque sur les points 1 à 6.
    Pouvez-vous m'aiguiller sur ces points par des petits cas d'école, je pourrais ainsi commencer le script pour ensuite vous le montrer.

    Cordialement

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 652
    Par défaut
    amha, ce n'est pas un problème de «lacunes en shell script», mais de manque de méthode.

    comment fais-tu manuellement ?
    • étape par étape
    • quelle condition subordonne quelle action
    • qu'est-ce qui décide que tu cherches des données dans un fichier .log.tar.gz, plutôt que .log ?
    • etc
    écris tout ça dans un fichier, sans code (ou un minimum); ça pourra servir de commentaires.
    ensuite tu codes.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 157
    Par défaut
    - On a des remontées d'erreurs applicatives, quand on arrive pas à résoudre le problème, on le soumet au niveau supérieur avec la partie du log contenant l'erreur. Des fois cette étape doit être effectuée sur plusieurs serveurs.
    - Le fichier serveur.log devient à court terme un .tar et il est ensuite archivé en .tar.gz à long terme.
    - Des fois on nous demande des bouts de logs archivés.


    Merci de votre aide.

  7. #7
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 102
    Par défaut
    Bonjour.

    Citation Envoyé par amazigh42 Voir le message
    En résumé je veux lancer le script avec 3 arguments
    ./mon_script SERV_X AAAA-MM-JJ HH
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    serveur=$1
    date=$2
    heure=$3
    Ce que je souhaiterai faire
    1 - Trouver dans quel répertoire se trouve le log ayant pour occurence AAAA-MM-JJ
    Si la profondeur de recherche n'est pas connue, j'utiliserais la commande 'find'.
    Si la profondeur de recherche est connue (par exemple, 2 niveaux), j'utiliserais juste l'extension de chemin:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    file=/la_racine/*/*/server.log.${date}.*
    2 - Variabiliser ce "REPERTOIRE"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    repertoire=$(dirname "${file}")
    ou bien (pour les pros):
    repertoire=${file%/*}
    3 - Variabiliser le log trouvé "server.log.AAAA-MM-JJ.extension"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    filename=$(basename "${file}")
    ou bien (pour les pros):
    filename=${file##*/}
    etc.

    4 - Variabiliser "Cde" qui devient cat si c'est un fichier .tar ou zcat si c'est un fichier .tar.gz
    5 - Variabiliser HH
    6 - A partir du nom du log server.log.AAAA-MM-JJ.extension extraire AAAA-MM-JJ
    Je croyais qu'il était connu: 2ème argument de ta commande???

    puis le transformer et le variabiliser en JJ/MM/AAAA.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 157
    Par défaut
    Merci beaucoup de votre aide.
    J'avance lentement mais je reviendrai vers vous quand le script aura pris un peu de forme.

Discussions similaires

  1. Option NR de la commande AWK
    Par tux2005 dans le forum Linux
    Réponses: 5
    Dernier message: 20/09/2010, 14h25
  2. [Python ligne de commande] L'option -m
    Par dahtah dans le forum Général Python
    Réponses: 1
    Dernier message: 10/06/2010, 18h37
  3. Contrat: vérification en ligne de commandes des options
    Par mga_geo dans le forum IGN API Géoportail
    Réponses: 5
    Dernier message: 23/04/2010, 11h41
  4. Réponses: 9
    Dernier message: 31/10/2008, 19h10
  5. Modifier une option pour la commande split
    Par vbcasimir dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 20/07/2005, 12h24

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