gpt4 book ai didi

python - 如何使用 SSH 在 Python 中远程执行脚本?

转载 作者:太空狗 更新时间:2023-10-29 21:24:58 25 4
gpt4 key购买 nike

def execute(self,command):
to_exec = self.transport.open_session()
to_exec.exec_command(command)
print 'Command executed'
connection.execute("install.sh")

当我检查远程系统时,我发现脚本没有运行。有什么线索吗?

最佳答案

下面的代码会做你想做的,你可以调整它以适应你的 execute功能:

from paramiko import SSHClient
host="hostname"
user="username"
client = SSHClient()
client.load_system_host_keys()
client.connect(host, username=user)
stdin, stdout, stderr = client.exec_command('./install.sh')
print "stderr: ", stderr.readlines()
print "pwd: ", stdout.readlines()

但请注意,命令将默认为您的 $HOME目录,所以你要么需要install.sh在你的$PATH或者(很可能)你需要 cd到包含 install.sh 的目录脚本。

您可以检查您的默认路径:

stdin, stdout, stderr = client.exec_command('getconf PATH')
print "PATH: ", stdout.readlines()

但是,如果它不在您的路径中,您可以 cd并像这样执行脚本:

stdin, stdout, stderr = client.exec_command('(cd /path/to/files; ./install.sh)')
print "stderr: ", stderr.readlines()
print "pwd: ", stdout.readlines()

如果脚本不在您的 $PATH 中你需要使用 ./install.sh而不是 install.sh ,就像您在命令行上一样。

如果您在完成上述所有操作后仍然遇到问题,那么检查 install.sh 的权限可能也是一个好办法。文件也是:

stdin, stdout, stderr = client.exec_command('ls -la install.sh')
print "permissions: ", stdout.readlines()

关于python - 如何使用 SSH 在 Python 中远程执行脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8783009/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com