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

Réseau/Web Python Discussion :

Changer de shell en remote


Sujet :

Réseau/Web Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2018
    Messages : 6
    Points : 1
    Points
    1
    Par défaut Changer de shell en remote
    Bonjour,
    Je m'entraîne à créer un script permettant d'exécuter des commandes sur un Reverse Proxy F5 LTM.
    Quand je me connecte j'arrive sur le shell TMOS et ai besoin de basculer sur le bash via la commande "run util bash".
    Quand je lance ceci ainsi
    stdin, stdout, stderr = client.exec_command('run util bash')
    Ca ne fonctionne pas.
    Ca mouline et je dois faire CTRL+Z pour interrompre le script.
    J'utilise paramiko.

    Hypothèse, passer de TMOS vers BASH doit faire l'objet d'une technique spécifique ? car si TMOS reçoit l'ordre en remote de basculer, ben y a plus de shell qui répond.
    J'ai pensé à la méthode invoke_shell() mais ne sais pas m'en servir.

    une idée ?
    VincnetKH

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 281
    Points : 36 768
    Points
    36 768
    Par défaut
    Salut,

    Quand je lis çà:
    Citation Envoyé par VincentKH Voir le message
    Quand je lance ceci ainsi
    stdin, stdout, stderr = client.exec_command('run util bash')
    Ca ne fonctionne pas.
    Êtes vous sûr d'avoir tapé la bonne commande tmsh ou avez vous oublié de relire le message que vous avez posté?

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2018
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    C'est la bonne commande, j'ai testé en cli directement.

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 281
    Points : 36 768
    Points
    36 768
    Par défaut
    Citation Envoyé par VincentKH Voir le message
    C'est la bonne commande, j'ai testé en cli directement.
    La commande documentée est "run /util bash".

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2018
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    ok pour la doc, mais en cli ça passe dans les 2 cas.
    Dans mon script, aucun des cas

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 281
    Points : 36 768
    Points
    36 768
    Par défaut
    Citation Envoyé par VincentKH Voir le message
    ok pour la doc, mais en cli ça passe dans les 2 cas.
    Dans mon script, aucun des cas
    Essayez une commande simple genre client.exec_command('run /util bash "ls -l"').

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2018
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    J'obtiens l'erreur suivante
    DEBUG:paramiko.transport:[chan 0] EOF sent (0)
    [u'/bin/bash: ls -l: No such file or directory\n']
    DEBUG:paramiko.transport:EOF in transport thread

  8. #8
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 281
    Points : 36 768
    Points
    36 768
    Par défaut
    Oops, j'ai oublié le "-c": client.exec_command('run /util bash -c "ls -l"').

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2018
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    ok
    avec le "-c" j'obtiens

    DEBUG:paramiko.transport:[chan 0] EOF sent (0)
    total 0

    []
    DEBUG:paramiko.transport:EOF in transport thread


    code
    stdin, stdout, stderr = client.exec_command('run /util bash -c "ls -l"')

  10. #10
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    salut,

    sinon tu pourrais peut-être fournir un code minimal qui reproduit le problème pour qu'on puisse tester ?

  11. #11
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2018
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    salut ButterBob,

    Le voici

    #!/usr/bin/env python2.7
    # -*- coding: utf-8 -*-
    #la premiere ligne plus chmod +x du script python permet de rendre le script executable
    # -*-coding:Latin-1 -*
    import socket, os, paramiko, scp, sys, logging, time, threading
    logging.basicConfig(stream=sys.stderr, level=logging.DEBUG)
    help(paramiko)
    dir(paramiko)

    client = paramiko.SSHClient()
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    client.connect('ip du serveur', 22, 'username','motdepasse') #pour le moment je passe les paramètres en dur sans variable
    #stdin, stdout, stderr = client.exec_command('show running-config sys global-settings gui-security-banner-text')
    stdin, stdout, stderr = client.exec_command('run /util bash -c "ls -l"')
    #stdin, stdout, stderr = client.exec_command('pwd')
    #stdin, stdout, stderr = client.exec_command('?')

    affich_sortie=stdout.readlines()
    for i in affich_sortie:
    print i
    #print(stdout.readlines())
    print(stderr.readlines())
    client.close()

  12. #12
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    Citation Envoyé par VincentKH Voir le message
    salut ButterBob,

    Le voici
    merci VincentZU



    pour ce qui est de invoke_shell() tu dois pouvoir tester comme suit (code minimaliste, à adapter) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    client = paramiko.SSHClient()
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    client.connect(...)
    channel = client.invoke_shell() # à partir de là ça s'utilise comme une socket classique
    channel.send('run /util ...') # à tester avec différentes choses, pwd, bash, bash -c ls, bash -i, etc.

Discussions similaires

  1. changer de shell dans un script ?
    Par benleroux dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 17/06/2009, 14h19
  2. comment changer le format date en shell ?
    Par sajodia dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 03/06/2008, 20h10
  3. Comment changer le shell de base ?
    Par gifffftane dans le forum Administration système
    Réponses: 2
    Dernier message: 07/01/2008, 09h25
  4. Changer de user dans un shell
    Par Matmal11 dans le forum Linux
    Réponses: 3
    Dernier message: 12/09/2006, 18h17
  5. Comment changer la résolution du shell ?
    Par Alex01 dans le forum Shell et commandes GNU
    Réponses: 14
    Dernier message: 15/06/2006, 09h31

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