• 當前位置:首頁 > IT技術 > 編程語言 > 正文

    python實現批量操作主機(自己可以選擇交互式和非交互式兩種)
    2022-04-19 11:10:32

    代碼開始------------------------------------------------------------

    #!/usr/bin/env python

    # _*_ coding:utf-8 _*_

    from paramiko import SSHClient, AutoAddPolicy

    import select

    import re

    ?

    host_list = [

    ? ? {'hostname': '192.168.174.130', 'port': 22, 'username': 'root', 'password': 'mana.2021'},

    ]? # 這是一個原始的主機信息列表;你也可以自己在代碼中添加,也可以遍歷excel進行添加;

    conn_deon = []? # 第一次驗證主機成功的主機列表

    conn_fail = []? # 第一次驗證主機報錯的主機列表

    conn_amend = []? # 修改端口后的主機列表;說明:修改端口的列表修改的是“第一次驗證失敗的列表【conn_fail】”

    host_version_filtration = []? # 過濾符合版本的主機;擴展功能

    no_host_version_filtration = []? # 過濾不符合版本的主機;擴展功能

    ?

    ?

    def ssh_ex(hostname, port, username, password):

    ? ? '''

    ? ? 這是一個測試連接是否成功的函數;

    ? ? 會將成功連接的主機傳入“conn_deon“列表;

    ? ? 將連接失敗的主機登錄信息追加到“conn_fail”列表

    ? ? :param hostname: 測試主機IP

    ? ? :param port: 測試主機端口

    ? ? :param username: 測試主機用戶名

    ? ? :param password: 測試主機密碼

    ? ? :return:

    ? ? '''

    ? ? ssh_client = SSHClient()? # 創建一個連接實例

    ? ? ssh_client.set_missing_host_key_policy(AutoAddPolicy)? # 自動處理SSH彈出的yes/no

    ? ? try:

    ? ? ? ? ssh_client.connect(hostname, port, username, password)? # 進行SSH連接

    ? ? ? ? # 將成功連接的主機追加“conn_deon“列表

    ? ? ? ? conn_deon.append({'hostname': hostname, 'port': port,

    ? ? ? ? ? ? ? ? ? ? ? ? ? 'username': username, 'password': password})

    ? ? ? ? print('国产呦精品一区二区三区网站|久久www免费人咸|精品无码人妻一区二区|久99久热只有精品国产15|中文字幕亚洲无线码