Python:如何在每个命令中通过SSH执行多个命令而不使用loggin

时间:2017-08-24 13:07:39

标签: python ssh subprocess

我需要使用Python脚本通过SSH在远程计算机(Ubuntu Mate 16.04)上执行2个命令。

run_pigpiod_remote在远程RPi上运行守护进程,如下面代码中的#Line0所示。 #Line1根据需要建立SSH链接并执行守护进程pigpiod

为了验证成功运行,我希望使用#Line2中所述的pgrep -x pigpiod。当#Line2被写入时 - 我需要再次输入密码。

如何避免多次输入密码(输入SSH,为#Line2运行sudo和第3次)

def run_pigpiod_remote(adress):
    if ip[0]==adress:
        print(adress,"is a local machine")
        run_pigpiod_local()
    else: #Line0
        print(adress," is a remote machine")
        result = subprocess.run(['ssh','-t','guy@'+adress,'sudo','pigpiod']) #Line1
        result2 = subprocess.run(['ssh','-t','guy@'+adress, "pgrep -x ", "pigpiod"]) #Line2

1 个答案:

答案 0 :(得分:1)

试试这个

   subprocess.run(['ssh','-t','guy@'+adress,'sudo pigpiod && pgrep -x pigpiod'])