Python3 retour de commande shell

Fermé
xunil2003 Messages postés 761 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 24 mars 2024 - 24 janv. 2023 à 18:04
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 - 26 janv. 2023 à 11:21

Bonjour,

Je suis sur python 3.8.10.

J'ai besoin de faire un retour de cette commande :

CMD = 'ssh-keygen -f "/home/laurent/.ssh/known_hosts" -R 192.168.1.56'

J'ai fait plusieurs essai impossible

CMD1 = ('ssh-keygen -f "/home/laurent/.ssh/known_hosts" -R 192.168.1.xx') #("ssh-keygen -f '"+str(e1)+".ssh/known_hosts' -R "+str(e2)) #% e1.get(), e2.get()
    RETOUR_CMD1 = os.system(str(CMD1))
    print ("RETOUR_CMD1 : ",RETOUR_CMD1)
    print ()
    
CMD2 = ('ssh-keygen -f "/home/laurent/.ssh/known_hosts" -R 192.168.1.xx') #("ssh-keygen -f '"+str(e1)+".ssh/known_hosts' -R "+str(e2)) #% e1.get(), e2.get()
    RETOUR_CMD2 = os.popen(str(CMD2))
    print ("RETOUR_CMD2 : ",RETOUR_CMD2)
    print ()
    
RETOUR_CMD4 = subprocess.Popen('/usr/bin/ssh-keygen -f', '"/home/laurent/.ssh/known_hosts"','192.168.1.xx').stdout.read()
    print ("RETOUR_CMD4 : ",RETOUR_CMD4)
    print ()

Les retours

Host 192.168.1.xx not found in /home/laurent/.ssh/known_hosts
RETOUR_CMD1 :  0

RETOUR_CMD2 :  <os._wrap_close object at 0x7f35234181f0>

Host 192.168.1.xx not found in /home/laurent/.ssh/known_hosts
stdout:

 

Exception in Tkinter callback
Traceback (most recent call last):
 File "/usr/lib/python3.8/tkinter/__init__.py", line 1892, in __call__
   return self.func(*args)
 File "/home/laurent/Langages/python/3/PyMachines/pymachines-03.py", line 1141, in <lambda>
   Button(Frame3, text='Valider', command=lambda x=e1: valider_fenetre_supprimer_la_cle_RSA_dune_adresse_ip(x, e2)).grid(row=5, column=2, sticky=W, pady=4)
 File "/home/laurent/Langages/python/3/PyMachines/pymachines-03.py", line 1172, in valider_fenetre_supprimer_la_cle_RSA_dune_adresse_ip
   RETOUR_CMD4 = subprocess.Popen('/usr/bin/ssh-keygen -f', '"/home/laurent/.ssh/known_hosts"','192.168.1.xx').stdout.read()
 File "/usr/lib/python3.8/subprocess.py", line 757, in __init__
   raise TypeError("bufsize must be an integer")
TypeError: bufsize must be an integer


Pouvez vous m'aider, qu'est-ce qui ne vas pas

Merci d'avance pour vos conseils et avis.




Linux / Firefox 109.0

A voir également:

3 réponses

yg_be Messages postés 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024 1 477
25 janv. 2023 à 07:47

bonjour,

quel résultat souhaites-tu obtenir?

0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
Modifié le 25 janv. 2023 à 11:03

Bonjour,

effectivement, 

ret = os.system(cmd)

retourne un statut d'erreur, par contre avec os.popen, ca devrait marcher, essaie ça pour voir :

CMD = 'ssh-keygen -f "/home/laurent/.ssh/known_hosts" -R 192.168.1.56'
ret = os.popen(CMD).read()
print(ret)

 Moi, par exemple, pour extraire le no de série de mon pc, je fais ça:

s_nb = os.popen('wmic bios get serialnumber').read()
0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
26 janv. 2023 à 11:21

Hello Xunil, 

alors, as-tu de la réussite ?

0