Python執(zhí)行或遠(yuǎn)程執(zhí)行shell命令

最近想要實(shí)現(xiàn)通過(guò)腳本循環(huán)再 Linux 下運(yùn)行 shell 命令,經(jīng)過(guò)探索發(fā)現(xiàn)使用 Python 語(yǔ)言有幾種解決方案,在此簡(jiǎn)單記錄。

方案一:腳本本地執(zhí)行命令

在 Python 中有兩個(gè)庫(kù)都可以實(shí)現(xiàn)運(yùn)行 shell 命令的效果:

import subprocess
import os

使用方法也很簡(jiǎn)單:

# subprocess 使用方法
subprocess.call("ls") # 執(zhí)行l(wèi)s命令

# os 使用方法
# 使用system模塊執(zhí)行l(wèi)inux命令時(shí),如果執(zhí)行的命令沒(méi)有返回值res的值是256
# 如果執(zhí)行的命令有返回值且成功執(zhí)行,返回值是0
res = os.system("ls")
# popen模塊執(zhí)行l(wèi)inux命令。返回值是類(lèi)文件對(duì)象,獲取結(jié)果要采用read()或者readlines()
val = os.popen('ls').read() # 執(zhí)行結(jié)果包含在val中

方案二:腳本遠(yuǎn)程執(zhí)行命令

在 Python 中有一個(gè)庫(kù)可以實(shí)現(xiàn) SSH 客戶(hù)端及 SFTP 的功能。

#!/usr/bin/python
import paramiko

使用方法大致如下:

# 連接方法
def ssh_connect( _host, _username, _password ):
    try:
        _ssh_fd = paramiko.SSHClient()
        _ssh_fd.set_missing_host_key_policy( paramiko.AutoAddPolicy() )
        _ssh_fd.connect( _host, username = _username, password = _password )
    except Exception, e:
        print( 'ssh %s@%s: %s' % (_username, _host, e) )
        exit()
    return _ssh_fd

# 運(yùn)行命令
def ssh_exec_cmd( _ssh_fd, _cmd ):
    return _ssh_fd.exec_command( _cmd )

# 關(guān)閉SSH
def ssh_close( _ssh_fd ):
    _ssh_fd.close()

方案三:使用 SecureCRT 腳本

該方法參見(jiàn)此前的博文:SecureCRT 下 Python 腳本編寫(xiě)

參考文獻(xiàn)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容