command – Sam & Max http://sametmax.com Du code, du cul Wed, 30 Oct 2019 15:34:04 +0000 en-US hourly 1 https://wordpress.org/?v=4.9.7 32490438 Executer une commande sur un serveur distant via ssh avec Python http://sametmax.com/executer-une-commande-sur-un-serveur-distant-via-ssh/ Thu, 21 Jun 2012 23:07:28 +0000 http://sametmax.com/?p=970 Executer une commande shell sur un serveur distant peut s’avérer très utile, par exemple avoir le load average du serveur distant à monitorer, rebooter un serveur à distance, récupérer l’espace disque restant, etc.

Il y a plusieurs manières d’executer une commande shell sur un serveur distant, on peut utiliser paramiko ou un simple popen comme suit:


Pour connaitre le load average du serveur skynet:


from subprocess import Popen, call, PIPE

user= arnold
server = skynet.com
 
process = Popen(['ssh', '-t', user + '@' + server ,'cat', '/proc/loadavg'], bufsize=4096, stdout=PIPE)
output = process.communicate()[0]

Ce procédé implique d’avoir des clefs ssh configurées

Note: J’ai eu quelques problèmes de blocage lors du login au serveur distant jusqu’à ce que j’ajoute l’option -t à ssh

Edit:

En bash ça donne:

ssh arnold@skynet.com cat /proc/loadavg

ou pour avoir l’espace disque

ssh arnold@skynet.com df -h
etc.
]]>
970