• 欢迎访问举个栗子网站
  • 小说APP下载 xsz.tw 不带广告的小说站

举个栗子:python中使用paramiko远程调用

网站 举个栗子 2年前 (2017-11-16) 645次浏览 0个评论 扫描二维码

在实际工作当中经常会碰到 linux 远程调用这样的场景,针对这样的场景,可以使用很多编程语言实现,本文采用python来实现此功能

工具/原料

  • Python;paramiko

方法/步骤

  1. 1

    ##1.导入paramiko模块

    #!/usr/bin/env python

    # -*- coding:utf-8 -*-                 #此头部指定后,才能兼容中文

    from __future__ import print_function  # 兼容 python 3.0 的 print 语法

    __author__ = 'zxh'

    import sys

    reload(sys)

    sys.setdefaultencoding('utf-8')

    print(sys.getdefaultencoding())

    import os

    import commands

    import paramiko

    python 中使用 paramiko 远程调用

  2. 2

    ##2.创建 ssh 连接函数

    def connect(host):

        'this is use the paramiko connect the host,return conn'

        ssh = paramiko.SSHClient()

        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

        try:

            ssh.connect(host, username='hadoop', password='123456', allow_agent=True)

            return ssh

        except:

            return None

    python 中使用 paramiko 远程调用

  3. 3

    ##3.编写执行函数

    def exec_commands(conn, cmd):

        ##'this is use the conn to excute the cmd and return the results of excute the command'

        print (cmd)

        stdin, stdout, stderr = conn.exec_command(cmd)

        results = stdout.read()

        print(stdout.read())

        print(stderr.read())

        return results

    python 中使用 paramiko 远程调用

  4. 4

    ##4.具体使用例子

    if __name__ == '__main__':

        # 远程执行命令

        data_date=sys.argv[1]

        exec_commands(connect('192.168.1.131'), "sh /opt/test/123.sh "+data_date)

        ##以下为多线程的例子,分别同时在多台机器上执行相同命令

        cmd = ['ifconfig', 'echo hello !']  # 你要执行的命令列表

        username = "root"

        passwd = "123456"

        threads = []  # 多线程

        print

        "Begin ……"

        for i in range(1,3):

            ip = '192.168.10' + str(i)

            a = threads.Thread(target=ssh2, args=(ip, username, passwd, cmd))

            a.start()

    python 中使用 paramiko 远程调用

  5. 5

    ##5.调用效果图

    python 中使用 paramiko 远程调用END

注意事项

  • 此经验乃实际操作,如有帮助请点赞或投票,谢谢~
  • 同样也欢迎小伙伴们的关注,这个是给小编最大的鼓励~

举个栗子 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:举个栗子:python 中使用 paramiko 远程调用
喜欢 (0)
举个栗子
关于作者:
建筑工地上施工员,闲暇时弄个博客打发时间,
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址