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 ou commande pour mon stage


Sujet :

Shell et commandes GNU

  1. #1
    Membre à l'essai
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Avril 2014
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Avril 2014
    Messages : 27
    Points : 11
    Points
    11
    Par défaut Script ou commande pour mon stage
    Bonjour à tous,
    je suis actuellement en stage et on me demande d’écrire une commande pour envoyer des notification Nagios vers un fichier texte qui doit avoir pour nom la date avec heures minutes sec et nanosecondes, puis de copier ce même fichier vers le même répertoire avec comme nom son_nom_OK.
    Pour l'instant j'en suis là:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    /bin/echo -e 
    "HOST ALERT:\n\n
    Type Notification: $NOTIFICATIONTYPE$\n
    Descriptif: $LONGHOSTOUTPUT$\n
     
    > 
     
    /tmp/notifications/notif`date +%Y%m%d%H%M%S%N`.txt 
     
    | |
     
    [-e *.txt]
     
    cp -u -p /tmp/notifications/*.txt /tmp/notificationsOK/
    mais je suis obligé de les copier dans deux répertoires différents et en plus à chaque fois il copie tout le contenu du repertoire.
    Je voudrais qu'il ne copie que le dernier fichier crée.



    Je débute en shell, je tiens à le préciser.

    Merci pour votre aide.

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 578
    Points : 19 442
    Points
    19 442
    Par défaut
    Bonjour,

    tu dois utiliser deux fois la commande cp.
    il faut aussi bien vérifier que le répertoires de destination existent.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Avril 2014
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Avril 2014
    Messages : 27
    Points : 11
    Points
    11
    Par défaut Oui
    Oui,
    je dois écrire dans un fichier qui porte comme nom:

    AnnéeMoisJourHeureMinuteSecondeNanoseconde

    Puis si ce fichier est écrit le copier dans le même répertoire
    (mon tuteur veut que ce soit le même)

    mais avec par exemple une différence de nom
    par ex: ajout de OK

    Merci pour ton aide

  4. #4
    Membre à l'essai
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Avril 2014
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Avril 2014
    Messages : 27
    Points : 11
    Points
    11
    Par défaut 2 fois ?
    Citation Envoyé par N_BaH Voir le message
    Bonjour,

    tu dois utiliser deux fois la commande cp.
    il faut aussi bien vérifier que le répertoires de destination existent.

    Qu'entends tu pour deux fois ?


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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 578
    Points : 19 442
    Points
    19 442
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #!/bin/sh
     
    Date=$(date +%Y%m%d%H%M%S%N)
    nomFic=notifications/notif$Date
     
    cat <<eof > /tmp/$nomFic
    HOST ALERT:
     
    Type Notification: $NOTIFICATIONTYPE
    Descriptif: $LONGHOSTOUTPUT
    eof 
     
    cp -u -p /tmp/notifications/$nomFic /tmp/notificationsOK/${nomFic}_OK
    lis les tutos qui figurent dans ma signature, ainsi que l'ABS

    la moindre des choses c'est de faire des petits essais, pas à pas.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Avril 2014
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Avril 2014
    Messages : 27
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par N_BaH Voir le message

    lis les tutos qui figurent dans ma signature, ainsi que l'ABS

    la moindre des choses c'est de faire des petits essais, pas à pas.

    Merci pour ton aide

    je vais essayer

  7. #7
    Membre à l'essai
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Avril 2014
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Avril 2014
    Messages : 27
    Points : 11
    Points
    11
    Par défaut Resultat
    Petite modif du script et ça a l'air de fonctionner:

    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
    #!/bin/sh
     
    Date=$(date +%Y%m%d%H%M%S%N)
    nomFic=notif$Date
     
    cat <<eof > /tmp/notifications/$nomFic
     
    "HOST ALERT:
    Type Notification: $NOTIFICATIONTYPE$
    Hote: $HOSTNAME$
    Groupe Hote: $HOSTGROUPALIAS$
    Etat: $HOSTSTATE$
    ID Etat: $HOSTSTATEID$
    Adresse IP: $HOSTADDRESS$
    Descriptif: $LONGHOSTOUTPUT$
    Date Heure: $SHORTDATETIME$"
     
    eof 
     
    cp -u -p /tmp/notifications/$nomFic /tmp/notifications/${nomFic}_OK
    Comme quoi t'as raison...
    il faut essayer par petites modifs, jusque à ce que ça marche.



    Au fait,
    Ca veut dire quoi ?

    Au cas où mon boss me demanderait...

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 578
    Points : 19 442
    Points
    19 442
    Par défaut
    cela débute un document en ligne (cf. man bash).
    ça permet de passer plusieurs lignes à une commande (pas seulement cat ), à partir de mot jusqu'à mot (mot devant être sur la première colonne du fichier (en tout début de ligne)).

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

Discussions similaires

  1. Idée de commande pour mon IA
    Par LeoBeutel dans le forum Cpcdos
    Réponses: 6
    Dernier message: 08/11/2014, 17h00
  2. Réponses: 15
    Dernier message: 10/06/2009, 09h19
  3. Réponses: 1
    Dernier message: 17/03/2008, 15h01
  4. Réponses: 3
    Dernier message: 22/09/2006, 20h39

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