J'essaye d'exécuter plusieurs commandes sur un ordinateur distant après avoir fait ssh sur cet ordinateur et ensuite exécuté des commandes sur son terminal.Comment envoyer plusieurs entrées au shell distant en utilisant subprocess.Popen
Je souhaite utiliser un sous-processus pour ce travail. Donc, je l'ai écrit la commande suivante: -
import subprocess
process = subprocess.Popen(['ssh', '[email protected]'], shell=False, stdin=subprocess.PIPE)
Maintenant, je reçois le terminal de machine distante et je passe la commande suivante qui est exécuté sur cette machine: -
print process.communicate('python test.py /home/rahul/vPath-dissector')
Mais quand je fais appel à nouveau la dernière commande appelée, elle donne une erreur: -
print process.communicate('python temp.py /home/rahul/vPath-dissector')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.6/subprocess.py", line 690, in communicate
self.stdin.write(input)
ValueError: I/O operation on closed file
Alors, quelle commande puis-je utiliser pour envoyer des commandes multiples sans fermer le fichier ???
Avez-vous essayé 'process.stdin.write ('python temp.py/home/rahul/vPath-dissector')' au lieu d'utiliser 'communicate'? – agf
Salut, alors comment vais-je obtenir la sortie de la commande ci-dessus ?? Je suis incapable d'obtenir sa sortie .... – Rahul
'process.stdout.readlines()'? – agf