Script shell

spartiates -  
zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Lorsque sur mon serveur je fais :

snmpwalk -v2c nom_communauté IP_serveur .1.3.6.1.4.1.2021.9.1.2.1

j'ai la liste des points de montage avec leurs index.

J'aimerai écrire un script shell qui lance cette commande sur une plage IP et qu'il enregistre dans un fichier .txt l'IP du serveur, les index ainsi que le nom du point de montage.

Exemple :

IP_SERVEUR

.1 -> /
.2 -> /var
.3 -> /home
...

Pouvez-vous m'aider pour écrire ce script car je ne vois pas du tout comment faire ?

Par avance merci

10 réponses

  1. KuKrApOk59 Messages postés 444 Date d'inscription   Statut Membre Dernière intervention   84
     
    Salut,

    Tu pourrais donner la sortie exacte de
    snmpwalk -v2c nom_communauté IP_serveur .1.3.6.1.4.1.2021.9.1.2.1 ?

    Histoire de voir comment est fournie l'information pour te donner un coup de main
    0
  2. spartiates
     
    Je te donne ça des que possible

    Merci de ton aide
    0
  3. spartiates
     
    Voila c'est à peut pret ça :

    HOST-RESOURCES-MIB::hrStorageDescr.1 = STRING: Physical memory
    HOST-RESOURCES-MIB::hrStorageDescr.3 = STRING: Virtual memory
    HOST-RESOURCES-MIB::hrStorageDescr.6 = STRING: Memory buffers
    HOST-RESOURCES-MIB::hrStorageDescr.7 = STRING: Cached memory
    HOST-RESOURCES-MIB::hrStorageDescr.8 = STRING: Shared memory
    HOST-RESOURCES-MIB::hrStorageDescr.10 = STRING: Swap space
    HOST-RESOURCES-MIB::hrStorageDescr.31 = STRING: /
    HOST-RESOURCES-MIB::hrStorageDescr.32 = STRING: /sys
    HOST-RESOURCES-MIB::hrStorageDescr.33 = STRING: /proc/bus/usb
    HOST-RESOURCES-MIB::hrStorageDescr.34 = STRING: /proc/sys/fs/binfmt_misc
    HOST-RESOURCES-MIB::hrStorageDescr.35 = STRING: /proc/fs/nfs
    HOST-RESOURCES-MIB::hrStorageDescr.36 = STRING: /var/lib/nfs/rpc_pipefs

    Est moi j'aimerai avoir dans un fichier l'index (.1 , .3, ... et le nom de la partition)
    0
  4. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    Salut,

    Essaie ça déjà, et dis-nous si la sortie te convient :

    snmpwalk -v2c nom_communauté IP_serveur .1.3.6.1.4.1.2021.9.1.2.1 | sed -n 's#[^.]*\([^ ]*\)[^:]*: \(.*\)#\1 -> \2#p'
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. spartiates
     
    Ok je vais tester demain matin et je vous tiens au courant.

    Merci pour votre aide.
    0
  7. spartiates
     
    Par contre ce script écrira le résultat de l'IP que j'aurai indiqué ! Mais si je veux faire une plage d'adresse IP je peux faire comment ?
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Je suppose qu'un truc du genre devrait faire l'affaire :

      for adresse in 'ip1 ip2 ip3'
      do
      echo -e "IP_SERVEUR : ${adresse}\n\n" > "${adresse}.txt" 
      snmpwalk -v2c nom_communauté "${adresse}.txt" .1.3.6.1.4.1.2021.9.1.2.1 | sed -n 's#[^.]*\([^ ]*\)[^:]*: \(.*\)#\1 -> \2#p' >> "${adresse}.txt"
      done
      0
  8. spartiates
     
    Ok merci beaucoup !

    Je test et je vous tiens au courant.

    Encore merci

    Bonne soirée !
    0
  9. spartiates
     
    Bonjour,

    Alors j'ai effectué le test du script ci-dessus (Le dernier script) et le résultat me conviens.

    IP_SERVEUR : IP_DU_SERVEUR

    .1 -> Nom_partition
    ...

    Par contre lorsque je met plusieurs IP (IP1 IP2) ... le nom du fichier se nomme IP1 IP2 ... IP3.txt : est-il possible d'enregistrer sous un même nom ?

    Ensuite dans le fichier il me met seulement le résultat de la première IP

    IP_SERVEUR : IP1 IP2 ...IPN

    .1 -> /
    .2 -> /home

    ....

    Est-il possible d'avoir comme résultat

    IP_SERVEUR : IP1

    .1 -> /
    .2 -> /home

    IP_SERVEUR : IP2

    .1 -> /
    .2 -> /home

    ...

    Merci pour votre aide
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Oups, j'avais mis des quotes en trop dans "for adresse in IP1 IP2 IP3" ;-((

      Donc essaies comme ça :

      for adresse in ip1 ip2 ip3
      do
      echo -e "IP_SERVEUR : ${adresse}\n" >> fichier_result.txt
      snmpwalk -v2c nom_communauté "${adresse}.txt" .1.3.6.1.4.1.2021.9.1.2.1 | sed -n 's#[^.]*\([^ ]*\)[^:]*: \(.*\)#\1 -> \2#p' >> fichier_result.txt
      echo -e "\n\n" >> fichier_result.txt
      done

      En gras ce qui a changé ;-))
      0
  10. spartiates
     
    Nickel !

    Par contre si je veux m'envoyer par mail le fichier fichier_result.txt

    je dois bien mettre ça :

    mailx -s "OBJET" adressse@mail.com < fichier_result.txt ?

    Si je veux faire un mail avec un message du genre :

    Bonjour,

    Voici le résultat du snmpwalk.

    ....

    comment dois-je faire ?

    Merci
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Re-

      Voir ce thread ;-))
      0
  11. spartiates
     
    Ok merci je vais regarder !

    Par contre si je veux rajouter dans mon fichier le nom du serveur (Hostname) je peux faire comment ?

    Merci
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      $ hostname > fichier.txt
      $ cat fichier.txt
      MDK-2010

      A adapter ;-))
      0