python paramiko外部傳參和內部調用命令的方法


學習了很久的python,但在工作中使用的時候,卻發現不知道怎么傳參進入到python中執行,所以這兩天就研究 了python args怎么將外部參數傳入到python中執行

1.首先使用python傳統的內部函數調用的方式,看看函數調用命令怎么執行的,在對比外部args傳參

import paramiko
import sys
import os
hostname = '192.168.1.202'
port = 22
username = 'root'
password = '123456'

def shells():
    #引入內部方法命令執行
    commds()
    #開啟日志
    paramiko.util.log_to_file('paramiko.log')
    s = paramiko.SSHClient()
    #s.load_host_keys()
    #不適用公鑰登陸
    s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    s.connect(hostname, port, username, password)
    #print(commds())
    for i in commds().rstrip().split(','):
        #循環commds里面得ls 和ifconfig命令,本來是一串字符串得,
        # 使用rstrip和split以,號 分割,是他們編程列表,循環
        print(i) #打印循環好的列表 ls,ifconfig
        stdin, stdout, stderr = s.exec_command(i) #分別執行這兩個命令
        print(stdout.read().decode())
    s.close()

def commds():
    #填寫命令
    com = 'ls' +','+ 'ifconfig'
    #返回命令給shells方法調用
    return com

if __name__ == '__main__':
    shells()

2.執行結果

 

3.第二中方法,就是將外部直接單個執行一個命令或者批量執行多個命令,這樣就不用固定的命令執行,每次運行都可以將自己要想的命令添加到后面執行

import paramiko
import sys
import os
hostname = '192.168.1.202'
port = 22
username = 'root'
password = '123456'

def shells(args):
    #從外部調用腳本參數 例如: python paramiko_demo.py ls ifconfig
    #開啟日志
    paramiko.util.log_to_file('paramiko.log')
    s = paramiko.SSHClient()
    #s.load_host_keys()
    #不適用公鑰登陸
    s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    s.connect(hostname, port, username, password)
    #print(commds())
    for i in args:
        print(i) #打印循環好的列表 ls,ifconfig
        stdin, stdout, stderr = s.exec_command(i) #分別執行這兩個命令
        print(stdout.read().decode())
    s.close()

if __name__ == '__main__':
    
    args=sys.argv
    shells(args)

執行單個命令 (該腳本有些缺陷,但是不影響效果展現哈)

python paramiko_demo.py ls

 

 執行多個命令 

python paramiko_demo.py ls ifconfig

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM