zoukankan      html  css  js  c++  java
  • paramiko模块实现Xshell自动连接服务器

    python和自动化运维

           在工作中往往会遇到要在几十台甚至几万台服务器上面跑一条命令或者是跑一个脚本,可以使用批量管理软件(ansible、jumpserver、puppet等),如果脚本用来实现的话,基本思路是:需要先登录要操作的服务器,然后再执行命令或者脚本,其中最难的是怎么批量免密登录到服务器(不要说几百台,就是十几台,也会让你很烦躁),方法很多,这里只介绍python的模块:paramiko。

    系统:centos 7.6

    python环境:python 2.7

    1. 安装paramiko模块

    pip install pycrypto paramiko  #前提是你已经安装pip,如果没有安装pip的话,查看最后,有安装的方式

    2. 脚本内容

    (1)将所有要批量添加服务器的IP地址存入一个文件

    cat /mnt/script/ip.txt

      192.168.0.1

      192.168.0.2

      192.168.0.3

    (2)修改和执行脚本

    cat tuisong.py  #需要修改三个地方,其他的都是固定格式

      #! /usr/bin/env python
       #   -*-coding:utf-8-*-

      import paramiko  #导入模块

      with open('/mnt/script/ip.txt') as f:  #服务器的IP地址,注意这里要加上单引号或者双引号
      for line in f:
      print line
      ssh = paramiko.SSHClient()
      ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
      ssh.connect(line, 22, '用户名','password')  #输入远程连接的端口号、登录的用户名和登录用户的密码
      stdin, stdout, stderr = ssh.exec_command('要执行的命令')  #例如:mkdir /root/test 或者 'sh ifconfig_ip.sh'
      print stdin
      print stdout
      print stderr

    python tuisong.py  #执行脚本

    补充内容:安装pip

    yum -y install epel-release

    yum -y install python-pip

  • 相关阅读:
    左旋一个字符串和手摇反转法
    LCS
    游戏服务器学习_1
    面试题_带答案_2
    面试题_带答案
    安卓_13
    安卓_12activity
    安卓_12
    多盟_1
    安卓没删干净导致报错
  • 原文地址:https://www.cnblogs.com/yunjisuan1024/p/11766598.html
Copyright © 2011-2022 走看看