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

Python Discussion :

lancer un fichier exécutable UNIX sur un serveur Linux distant


Sujet :

Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Chargé de traitement
    Inscrit en
    Décembre 2019
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Chargé de traitement
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2019
    Messages : 16
    Points : 11
    Points
    11
    Par défaut lancer un fichier exécutable UNIX sur un serveur Linux distant
    Bonjour,

    J'essaie de créer un script d'automatisation en Python 3.7 en local depuis Windows,

    Je souhaiterai y exécuter dedans un programme UNIX que j'ai crée "proc_data" (qui contient des commandes Unix telles que des SORT sur des fichiers, des DIFF, des RM, des exécutions de programmes awk par exemple)

    J'ai réussi à me connecter au serveur distant par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    import pysftp
    my2Hostname = "XXX.com"
    my2Username = "XXX"
    my2Password = "XXX"
    my2Port=XXX
    cnopts = pysftp.CnOpts()
    cnopts.hostkeys = None
    sftp = pysftp.Connection(my2Hostname,username=my2Username,password=my2Password,port = my2Port,cnopts=cnopts)
    Mais je n'arrive pas à exécuter mon fichier "proc_data", savez-vous comment je peux fair svp ?

    J'ai testé avec import paramiko le script suivant qui ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ##Tests de commandes Linux
    client = paramiko.SSHClient()
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    client.connect(my2Hostname, username=my2Username, password=my2Password)
    #cmd1='cd /data_FR/REPETUDE/2019/'
    #cmd2='./proc_data'
    client_stdin, client_stdout, client_stderr = client.exec_command(cmd1)
    client_stdin, client_stdout, client_stderr = client.exec_command(cmd2)
    client.close()
    sous Unix pour exécuter ma proc_data je me connecte à ce serveur distant par putty ssh puis je fais donc dans une fenêtre d'invite de commande Unix :
    cd /data_FR/REPETUDE/2019/
    puis :
    ./proc_data
    Merci d'avance pour votre aide

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Lancez successivement:
    • client.exec_command('pwd')
    • client.exec_command('cd /data_FR/REPETUDE/2019/')
    • client.exec_command('pwd')

    en affichant la sortie.

    Vous devriez vous rendre compte de la cause du soucis.

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

  3. #3
    Membre à l'essai
    Homme Profil pro
    Chargé de traitement
    Inscrit en
    Décembre 2019
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Chargé de traitement
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2019
    Messages : 16
    Points : 11
    Points
    11
    Par défaut
    Merci pour la réponse !
    déjà je comprends où je suis

    Effectivement, je me rends compte que je suis dans un répertoire : /home/group/myuser

    Et pas du tout à l'endroit où je voudrais être : /data_FR/REPETUDE/2019/

    même après avoir exécuté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    client.exec_command('cd /data_FR/REPETUDE/2019/')
    le pwd me renvoie toujours /home/group/myuser

    Comment est-ce que je peux me mettre dans /data_FR/REPETUDE/2019/ svp ?

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Citation Envoyé par picolo64 Voir le message
    comment est-ce que je peux me mettre dans /data_FR/REPETUDE/2019/ svp ?
    Soit vous utilisez .invoke_shell soit vous mettez plusieurs commandes séparées par un ';' comme vous le feriez sur un "shell" standard i.e. .exec_command('cd ...; ...').

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

  5. #5
    Membre à l'essai
    Homme Profil pro
    Chargé de traitement
    Inscrit en
    Décembre 2019
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Chargé de traitement
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2019
    Messages : 16
    Points : 11
    Points
    11
    Par défaut
    Merci beaucoup cela fonctionne ! J'ai pris la 2ème solution avec des ;

    Bonne soirée

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

Discussions similaires

  1. Exécuter des commandes UNIX sur un serveur distant
    Par floctc dans le forum Langage
    Réponses: 14
    Dernier message: 31/03/2010, 17h32
  2. Réponses: 1
    Dernier message: 21/12/2006, 13h06
  3. Copier fichiers sous UNIX sur cle USB
    Par eldiablol dans le forum Administration système
    Réponses: 3
    Dernier message: 30/11/2006, 19h10
  4. [Applet] Fichier de log sur le serveur
    Par le Daoud dans le forum Applets
    Réponses: 2
    Dernier message: 23/05/2006, 16h38
  5. Lire un fichier texte présent sur un serveur Web
    Par Matt2094 dans le forum Web & réseau
    Réponses: 17
    Dernier message: 09/05/2006, 16h20

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