簡體   English   中英

使用 SSH 遠程運行 bash 腳本並傳遞參數

[英]Run bash script remotely with SSH and pass arguments

我正在嘗試通過 SSH 遠程運行帶有參數的 bash 腳本。

因此,該腳本以該遠程計算機上的用戶身份運行本地 bash 腳本。 我嘗試谷歌搜索,發現subprocess可以工作。

所以基本上,如果沒有subprocess ,命令將如下所示:

ssh -l root server01 -i ~/.ssh/id_rsa "bash -s" < /scripts/myscript.sh "{}" "{}"'.format(args.username, some_text)

subprocess復制嘗試如下所示:

myCommand = [ "bash", "-s" ,"<", "mybash.sh", 'username', "test" ]
myCommandStr = ' '.join(shlex.quote(n) for n in myCommand)
subprocess.call(['ssh', '-T', '-l', 'root', 'server01', '-i', '~/.ssh/id_rsa', myCommandStr])

一旦我運行它,它就會掛起。 沒發生什么事。

我的 SSH 密鑰已經在那個遠程機器上,如果我運行第一個命令它就可以工作,我只是不想使用os.system

您似乎在混合使用 python 和 bash。 如果你想執行一個python程序,你只能在本地執行它,這意味着你必須將python腳本放在那台機器上,然后才能用python3運行它。 不可能在這里有一個 python 腳本,但通過 ssh 或其他方式在另一個腳本上運行它。

在子進程方面,只是擔心執行時間太長,您必須退出ssh login,因為它會被中斷和停止。 在這種情況下,將nohup放在像python3 myprogram.py這樣的執行命令之前。 您需要搜索有關 bash 命令nohup詳細信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM