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 :

Ajout d'extension aux hostnames et connexion distante via telnet et SSH


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Juillet 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2014
    Messages : 6
    Par défaut Ajout d'extension aux hostnames et connexion distante via telnet et SSH
    Bonjour,

    Est-ce possible d'avoir votre aide (désolé, je débute en programmation et en shell). Voici mon problème...

    J'ai un fichier texte de 170 lignes de hostnames (host1, host2, host3, etc). Chaque hostname se trouve tout seul sur une ligne de ce fichier. A partir d'une machine distante, je souhaite utiliser TELNET ou SSH afin d'exécuter des commandes (ex. : prtdiag -v | grep -i ps ), et récupérer les résultats de ces commandes dans un fichier "resultats" de cette façon : Hostname sur une ligne, suivit des outputs des commandes sur la ligne suivante du fichier "resultats".

    1° Comment je peux d'abord ajouter à chaque hostname l'extension "-my.dc", par exemple pour le "host1" : host1-my.dc ?

    2° Ensuite, comment faire pour que telnet et ssh (utilisant chacun un login et un password) puissent me connecter sur chaque hostname : host*-my.dc, puis exécuter des commandes et récupérer les résultats dans un fichier, comme cela a été décrit plus haut?

    D'avance Merci

  2. #2
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Par défaut
    Bonjour.

    Serait-il possible d'avoir un extrait de ce fichier ? Oui c'est sans aucun doute possible mais sans avoir un format précis des lignes de ce fichier, nous ne pouvons donner de réponses exactes et surtout optimales (va t-ont se contenter de Bash, va t-ont utiliser awk, ou sed, etc)...

    Actuellement nous ne savons pas si chaque ligne ne contient que le hostname de vos machines distantes ou pas, par exemple...

    Je vais néanmoins donner un début de piste possible :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $ cat list_host 
    host1
    host2
    host3
    $ sed "s/^\(.*\)$/\1-my.dc/g" list_host 
    host1-my.dc
    host2-my.dc
    host3-my.dc
    $ sed "s/^\(.*\)$/\1-my.dc/g" list_host|xargs -I{} ssh {} "command" >> fichier.out
    Idriss

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

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


  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Salut,

    Citation Envoyé par Flodelarab Voir le message
    Pour la commande sed, voici un peu plus simple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed 's/.*/&-my.dc/' liste_170_hostnames.txt
    Encore plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed 's/$/-my.dc/' liste_170_hostnames.txt


    Par contre je plussoie la 1ère partie (read)

  5. #5
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 352
    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 352
    Par défaut
    Bonjour,
    Voici d'autres méthodes qui peuvent faire le travail, sachant que la méthode de la boucle while déjà proposée est bien souvent la plus adaptée puisqu'elle permet de faire d'autres actions dans la même boucle sans pour autant changer les fichiers d'origine:

    -Via echo avec l'aide de xargs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $ xargs -I{} -a list-host.txt echo {}-my.dc
    host1-my.dc
    host2-my.dc
    host3-my.dc
    -Via printf toujours avec l'aide de xargs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $ xargs -a list-host.txt printf "%s-my.dc\n"
    host1-my.dc
    host2-my.dc
    host3-my.dc
    Via awk (méthode classique):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $ awk '{print $0 "-my.dc"}' list-host.txt 
    host1-my.dc
    host2-my.dc
    host3-my.dc
    Via awk (méthode alternative):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $ awk '$0=$0"-my.dc"' list-host.txt 
    host1-my.dc
    host2-my.dc
    host3-my.dc

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Juillet 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2014
    Messages : 6
    Par défaut
    Bonjour,

    Merci de votre aide à la première question : la format :
    host1-my.dc
    host2-my.dc
    host3-my.dc
    .....

    Est exactement le format que je voulais obtenir!

    Mais maintenant que la liste ci-dessus a été créée, comment faire pour aller sur chaque hostname via telnet ou ssh pour exécuter des commandes et récupérer les résultats?

    Merci

Discussions similaires

  1. connexion à distance via telnet ou ssh ?
    Par yoh852 dans le forum Réseau
    Réponses: 2
    Dernier message: 04/04/2013, 12h25
  2. Connexion distante via SQLCMD
    Par tibal dans le forum Outils
    Réponses: 1
    Dernier message: 03/01/2013, 15h56
  3. Réponses: 2
    Dernier message: 09/04/2008, 09h55
  4. connexion switch via telnet
    Par sisina dans le forum Hardware
    Réponses: 2
    Dernier message: 26/02/2008, 14h25
  5. connexion à linux via telnet windows en root
    Par Purple Haze dans le forum Réseau
    Réponses: 4
    Dernier message: 24/03/2007, 00h36

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