import os.path
import subprocess
import sys
os.system('sshpass -p password ssh root@esst-warp-d')
subprocess.call('lscpu')
我尝试了上面的代码,但是该命令将在注销服务器后执行。
import os.path
import subprocess
import sys
os.system('sshpass -p password ssh root@esst-warp-d')
ssh root@esst-warp-d "lscpu"
如果尝试上述代码,我将在第五行中获取语法无效的代码
您能帮我解决问题吗?
[当您运行os.system("sshpass ...")
时,它将创建一个与其他任何内容都不相关的新进程,并在其中运行您的sshpass
命令。然后该过程退出。
[当您运行subprocess.call()
时,它将在本地计算机上创建一个新进程,该进程与上面刚刚退出的进程无关,并在其中运行命令。然后该过程退出。
您实际上是想创建一个连接到远程Linux计算机的新进程,然后在该计算机上运行命令,因此您需要这样做:
sshpass -p password ssh root@esst-warp-d '/path/to/lscpu'
在终端中尝试。