python - Subprocess module for remote command(s) -
i trying use subprocess module executing remote command. need execute program called 'upgrade' located on remote server. also, need use argument in call. here how tried that:
import subprocess p=subprocess.popen(['ssh', '15.36.77.1', './home/upgrade -u' ],stdin=subprocess.pipe, stdout=subprocess.pipe,stderr=subprocess.pipe, shell=true) stdout,stderr=p.communicate(input='\n')
when try execute command , return code form it, 255, means command failed. me issuse? no third part libraries should used. sorry bad english.
i think you're problem when using shell=true
execute give subprocess.popen
string. 2 ways , without shell=true
follows:
subprocess.call(["ls", "-l"]) subprocess.call("exit 1", shell=true)
so in case string need give popen is:
['ssh 15.36.77.1 ./home/upgrade -u']
or can remove shell=true
make command:
p=subprocess.popen(['ssh', '15.36.77.1', './home/upgrade -u' ], stdin=subprocess.pipe, subprocess.pipe,stderr=subprocess.pipe)
note using shell=true
not recommended can potential security hazard if asking intput command line. see example given in documentation:
https://docs.python.org/2/library/subprocess.html#frequently-used-arguments
p.s. english great!
Comments
Post a Comment