如何使用python執行遠端shell指令碼

2022-02-03 14:28:44 字數 4139 閱讀 2634

1樓:匿名使用者

pexpect複雜,但通用靈活。

另外一種辦法就是ssh-keygen/ssh-copy-id,實現自動金鑰驗證取代手動密碼驗證,然後就可以直接呼叫遠端『ssh

remote-user@remote-host remote-script.sh』,麻煩之處在於要手動建立與維護兩臺機器間的公鑰。

至於捕獲輸出,還是要變通一點,既然b都登陸到a了,那麼通過臨時檔案向a輸出內容不是更簡單嗎,這是shell程式設計中簡單有效的辦法。

還可以使用sftp

2樓:匿名使用者

可以使用python的fabric包來完成這項任務。

既然是談到shell指令碼,系統應該是linux/unix的,遠端訪問,應該是ssh吧。

fabric功能是將一個任務通過ssh在多臺伺服器上執行,而每個任務可以是單條shell指令或是一段python指令碼。

fabric是將python, shell和ssh的功能很優雅地結合在了一起,同時自身又非常的輕量,適合大部分伺服器群的日常管理工作。

我想用python寫個web介面簡單執行遠端linux命令 web介面要能自由填寫執行shell命令和指令碼

3樓:匿名使用者

如果你是為了遠端操作的話,不要用web介面,用secure shell。如果你是為了寫這個python程式,那你需要標準庫裡的subprocess和cgi。

4樓:

1. python 基礎知識. 如 控制語句、異常處理try...except。

2. 內建的資料結構. 如:元組、列表、字典....

3. 模組函式、字元 正規表示式

以上為基礎

4. python 的web框架要diango5. 還需要學習web的相關模組.

至少應掌握這些方面知識.

5樓:匿名使用者

首先python基礎你得會:

最簡單套路:web用flask,linux互動用subprocessor模組

說白了就三點:python基礎、flask框架、subprocessor模組

6樓:匿名使用者

我正在做類似的東西,shell,檔案管理,桌面截圖,語音監聽。

7樓:匿名使用者

webpy

或者你是想自己做個webshell

如何使用python執行遠端shell指令碼

8樓:追憶小土豆

最近有個需求就是頁面上執行shell命令,第一想到的就是os.system,

**如下:

os.system('cat /proc/cpuinfo')

但是發現頁面上列印的命令執行結果 0或者1,當然不滿足需求了。

嘗試第二種方案 os.popen()

**如下:

output = os.popen('cat /proc/cpuinfo')

print output.read()

通過 os.popen() 返回的是 file read 的物件,對其進行讀取 read() 的操作可以看到執行的輸出。但是無法讀取程式執行的返回值)

嘗試第三種方案 commands.getstatusoutput() 一個方法就可以獲得到返回值和輸出,非常好用。

**如下:

(status, output) = commands.getstatusoutput('cat /proc/cpuinfo')

print status, output

python document 中給的一個例子,

**如下:

>>> import commands

>>> commands.getstatusoutput('ls /bin/ls')

(0, '/bin/ls')

>>> commands.getstatusoutput('cat /bin/junk')

(256, 'cat: /bin/junk: no such file or directory')

>>> commands.getstatusoutput('/bin/junk')

(256, 'sh: /bin/junk: not found')

>>> commands.getoutput('ls /bin/ls')

'/bin/ls'

>>> commands.getstatus('/bin/ls')

'-rwxr-xr-x 1 root 13352 oct 14 1994 /bin/ls'

如何用python互動執行shell指令碼

9樓:

「互動執行shell指令碼」是不是說代替人的手動輸入,比如sudo時輸入密碼的操作?

這種情況可以用pexpect模組。不是預設的,需要自己裝。

10樓:小男孩

使用commands模組

有三個函式:

1.commands.getstatusoutput(cmd)使用os.popen()執行命令cmd,然後返回兩個元素的元組(status, result)

cmd的執行方式是 2>&1,這樣返回結果裡面就包含了標準輸出和標準錯誤

2.commands.getoutput(cmd)只返回執行的結果,忽略返回值

3.commands.getstatus(file)

shell本地指令碼呼叫遠端指令碼,當遠端指令碼執行完再繼續執行本地指令碼 5

11樓:

#!/bin/bash

#呼叫expect指令碼執行遠端sh

expect -c '

set timeout 10000

spawn ssh usr@ip

expect

"*assword"

}expect "#"

send "sh 1\r"

expect "#"

'echo

ls -l

其中timeout時間需要設定足夠長,不然會連線超時斷掉。

或者你配置了rsh,可以把上面的expect過程替換成rsh [host] [-l username] [-n] [command]

12樓:可興修

只要你遠端的指令碼1裡面沒有通過 nohup 呼叫,這個指令碼本身就會要求 1執行完成後才能執行 ls -l指令,無需sleep

你可以這樣測試

ssh user@ip "sleep 2;echo 1"

echo 2

你可以看到顯示結果一定是12

怎麼樣,給分吧

13樓:

兄弟,如果不是你學校的問題的話, 我可以為你解決。wo jiu shi linux da神。 你yong baidu 私信我吧,然後zai lian xi wo

如何遠端登入linux機器並執行python程式

14樓:匿名使用者

可以通過任意的ssh工具,通過祕鑰或者密碼的方式連線到遠端linux機器上通過python命令執行程式,demo如下:

ssh   user@ip  "python  file.py"

注:file程式如需要後臺執行,請自行設定守護程序。

如何通過python指令碼連線批量的遠端伺服器執行python指令碼,伺服器都是windows系統

15樓:匿名使用者

python的特色簡單 python是一種代表簡單主義思想的語言。閱讀一個良好的python程式就感覺像是在讀英語一樣,儘管這個英語的要求非常嚴格!python的這種偽**本質是它最大的優點之一。

它使你能夠專注於解決問題而不是去搞明白語言本身。 易學 就如同你即將看到的一樣,python極其容易上手。前面已經提到了,python有極其簡單的語法。

免費、開源 python是floss(自由/開放原始碼軟體)之一。簡單地說,你可以自由地釋出這個軟體的拷貝、閱讀它的源**、對它做改動、把它的一部分用於新的自由軟體中。

16樓:

構建socket 基於cs體系編寫

如何使用python中的nltk對哈薩克語或阿拉伯語進行句法分析

如果是英語和西班牙語可以用 使用這個模組可以對名詞的單複數進行版轉換及字元操作。權 如何用 python 中的 nltk 對中文進行分析和處理 一 nltk進行分詞 用到的函式 nltk.sent tokenize text 對文字按照句子進行分割 nltk.word tokenize sent 對...

如何使用python中的turtle畫紅蘋果

全部 如下列出,使用的是python3。可以作為參考,這個 比較簡單,是用圓形來近似地畫一個蘋果。可以複製 我把縮排也打進去了,因此我加上了網頁連結,目的地是菜鳥教程 不過與本題無關,doge from turtle import def leaf radius,an 90,co green co1...

如何有效的執行6S

1 先組織到同行業或相關行業6s執行較好的企業或工廠參觀,增進大家改善的意願 2 製作6s宣傳海報或板報,宣導6s的基礎知識 3 組織進行系統的6s知識學習 4 成立6s推進小組或團隊 5 根據實際情況制定改善的專案和方法 6 實施改善的具體過程 7 總結改善的成果,製作成對比 和光榮榜 先進集體和...