Python paramiko模块基本使用(一)

使用paramiko模块登录远程主机,对日志进行统计分析。

import paramiko

def batch_count(days, hours, ips, user, passwd, source_path, dest_path, port=22):
    for ip in ips:
        count(days, hours, ip, user, passwd, source_path, dest_path, port=22)

def count(days, hours, ip, username, password,source_path, dest_path, port=22):
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect(ip,port,user,passwd)
    num = []
    for day in days:
        cmd1 = "grep \"%s/May/2018:\" %s/access.log | grep \"404\" > %s/day%s.log" %(day, source_path, dest_path, day)
        print cmd1
        stdin, stdout, stderr = ssh.exec_command(cmd1)
        tmp = []
        for hour in hours:
            cmd2 = "grep \"%s/May/2018:%s\" %s/day%s.log |wc -l" %(day, hour, dest_path, day)
            print cmd2
            stdin, stdout, stderr = ssh.exec_command(cmd2)
            out = stdout.readline().strip()
            tmp.append(out)
        num.append(tmp)
    draw(num, days, hours, ip)
    output(num, days, hours, ip)

def draw(table, days, hours, ip):
    print ip
    print ‘   ‘,
    for i in hours:
        print ‘%6s‘ %i ,
    print ‘%6s‘ %‘sum‘ ,
    print ‘‘
    for i in range(len(days)):
        print ‘D%s‘ % days[i] ,
        sum = 0
        for j in range(len(hours)):
            sum = sum + int(table[i][j].encode("utf-8"))
            print ‘%6s‘ % table[i][j] ,
        print ‘%6d‘ % sum,
        print ""

def output(table,days,hours,ip):
    with open(‘./count.log‘,‘aw‘) as f:
        f.write(‘%s\n‘ % ip)
        f.write(‘%5s‘ % ‘‘)
        for i in hours:
            f.write(‘%6s‘ % i)
        f.write(‘%6s‘ % ‘sum‘)
        f.write("\n")
        for i in range(len(days)):
            f.write(‘day%s‘ % days[i])
            sum = 0
            for j in range(len(hours)):
                sum = sum + int(table[i][j].encode("utf-8"))
                f.write(‘%6s‘ % table[i][j])
            f.write(‘%6d‘ % sum)
            f.write("\n")

if __name__ == ‘__main__‘:
    days = [‘04‘,‘05‘,‘06‘]
    hours = [‘10‘,‘11‘,‘12‘,‘13‘,‘14‘,‘15‘,‘16‘,‘17‘,‘18‘]
    ips = [‘132.121.89.65‘,‘132.121.89.66‘]
    user = ‘opan‘
    passwd = ‘1*p%N0z9‘
    source_path = ‘/data1/logs/nginx‘
    dest_path = ‘/home/opan‘
    batch_count(days, hours, ips, user, passwd, source_path, dest_path, port=22)

原文地址:https://www.cnblogs.com/prometheus-python-xshell/p/9070892.html

时间: 2024-10-12 08:41:55

Python paramiko模块基本使用(一)的相关文章

Python Paramiko模块安装和使用

1.简介 大家会发现,常见的解决方法都会需要对远程服务器必要的配置,如果远程服务器只有一两台还好说,如果有N台,还需要逐台进行配置,或者需要使用代码进行以上操作时,上面的办法就不太方便了. 使用paramiko可以很好的解决以上问题,比起前面的方法,它仅需要在本地上安装相应的软件(python以及PyCrypto),对远程服务器没有配置要求,对于连接多台服务器,进行复杂的连接操作特别有帮助. 2.安装 安装paramiko有两个先决条件,python和另外一个名为PyCrypto的模块. 通常安

python paramiko模块sftp异常:paramiko.ssh_exception.SSHException: EOF during negotiation

python paramiko模块ftp报错: Traceback (most recent call last):File "<stdin>", line 1, in <module>File "/usr/lib/python2.7/dist-packages/paramiko/sftp_client.py", line 170, in from_transportreturn cls(chan)File "/usr/lib/py

python paramiko模块

paramiko模块是python中很重要的模块,他的功能呢主要分为两大块功能.一个是模拟SSH功能登录到远程主机上执行命令.一个是模拟SFTP功能传输文件. paramiko支持密码登陆方式和免密码的私钥登录方式. 密码登陆方式代码如下: #!/usr/bin/env python # coding:utf-8 import paramiko # 创建SSH对象 ssh = paramiko.SSHClient() # 访问未知主机时候的策略,允许连接不在know_hosts文件中的主机 ss

python paramiko模块简介

一:简介 paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接. 由于使用的是python这样的能够跨平台运行的语言,所以所有python支持的平台,如Linux, Solaris, BSD, MacOS X, Windows等,paramiko都可以支持,因此,如果需要使用SSH从一个平台连接到另外一个平台,进行一系列的操作时,paramiko是最佳工具之一. 举个常见的例子,现有这样的需求:需要使用windows客户端,远程连接到L

python paramiko模块幸运飞艇平台搭建实现跨平台SSH

需求:在幸运飞艇平台搭建论坛:haozbbs.com Q1446595067 管理用户端(实际上所有支持Python的OS都可以)批量对远程服务器进行部署.命令执行.文件传输.搭建测试环境等. 一般的,我们用Putty,Xshell,Winscp都可以实现SSH登录,但是如果出现N台服务器,我们按照原来的方法,需要逐个登录配置,这会花费一定的时间.实际上,Python的paramiko模块就可以实现这种操作.其原理就是模拟SSH客户端,与SSH服务端进行交互,实现登录与命令的实时传输.Param

Python paramiko模块(实现ssh)

开发堡垒机之前,先来学习Python的paramiko模块,该模块基于SSH用于连接远程服务器并执行相关操作 安装paramiko模块 pip3 install paramiko 基于用户密码方式 import paramiko # 创建SSH对象 ssh = paramiko.SSHClient() # 允许连接不在know_hosts文件中的主机 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 连接服务器 ssh.con

Python paramiko 模块

paramiko模块机遇SSH用于连接远程服务器并执行相关操作 SSHClient 用于连接远程服务器并执行基本命令 基于用户名密码连接: import paramiko # 创建SSH对象 ssh = paramiko.SSHClient() # 允许连接不在know_hosts文件中的主机 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 连接服务器 ssh.connect(hostname='host', port=po

python paramiko模块的使

一般使用paramiko的功能就是通过ssh远程执行命令,远程(上传.下载)传输文件等等 依赖包:/usr/local/python27/bin/pip install pycrypto 下载包 paramiko #wget http://en.onlinedown.net/down/paramiko-1.7.7.1.zip #unzip paramiko-1.7.7.1.zip #cd paramiko-1.7.7.1 #python setup.py build #python setup.

python paramiko模块简介及安装

一:简介 paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接. 由于使用的是python这样的能够跨平台运行的语言,所以所有python支持的平台,如Linux, Solaris, BSD, MacOS X, Windows等,paramiko都可以支持,因此,如果需要使用SSH从一个平台连接到另外一个平台,进行一系列的操作时,paramiko是最佳工具之一. 举个常见的例子,现有这样的需求:需要使用windows客户端,远程连接到L