gpt4 book ai didi

linux - Paramiko 运行脚本并退出

转载 作者:太空宇宙 更新时间:2023-11-04 12:53:32 25 4
gpt4 key购买 nike

我试图让 paramiko 在外部机器上运行脚本并退出,但在运行脚本时遇到问题。有谁知道为什么它不运行脚本?我尝试在 VM 上运行命令手册并且成功了。

command = "/home/test.sh > /dev/null 2>&1 &"

def start_job(host):

try:
client = paramiko.SSHClient()
client.load_system_host_keys()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

client.connect(hostname, port=22, username=username, password=password)
return client.exec_command(command)

finally:
client.close()

start_job(hostname)

最佳答案

首先,start_job 函数中的参数或 client.connect() 的第一个参数存在拼写错误。除此之外,只需在关闭连接之前返回 stdout/stderr 内容:

def start_job(hostname):

try:
client = paramiko.SSHClient()
client.load_system_host_keys()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

client.connect(hostname, port=22, username=username, password=password)
(_, stdout, stderr) = client.exec_command(command)
return (stdout.read(), stderr.read())

finally:
client.close()

在你的例子中,命令将 stderr 重定向到 stdout 并在后台运行,所以我不希望返回两个空字符串:

start_job(hostname)
('', '')

关于linux - Paramiko 运行脚本并退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36421991/

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