我使用python模块pysftp连接到远程服务器。下面你可以看到python代码:
import pysftp
import sys
import sqr_common
srv = pysftp.Connection(host="xxxxxx", username="xxxx",
password="xxxxx")
command = "/usr/bin/bash"
command2="APSHOME=/all/aps/msc_2012; export APSHOME; "
srv.execute(command)
srv.execute(command2)
srv.close()
问题是命令/ usr / bin / bash是一个无限的进程,所以我的脚本永远不会被执行。任何人都可以帮我如何选择远程服务器上的shell,例如bash,并在远程服务器上的bash中执行命令?是否有任何pysftp函数可以让我选择shell?
答案 0 :(得分:1)
试试这个
/usr/bin/bash -c "APSHOME=/all/aps/msc_2012; export APSHOME; "
答案 1 :(得分:0)
此问题并非特定于Python,而更像是如何在特定shell下执行命令。
如果只需要运行单个命令,则可以使用bash -c switch
运行bash -c "echo 123"
您可以运行多个命令;分离
bash -c "echo 123 ; echo 246"
如果您需要在特定shell下执行许多命令,请远程创建shell脚本文件(.bash文件)并执行它
bash myscript.bash