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

import paramikodef 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 cmd1stdin, 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 cmd2stdin, 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 ipprint '   ',for i in hours:print '%6s' %i ,print '%6s' %'sum' ,print ''for i in range(len(days)):print 'D%s' % days[i] ,sum = 0for 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 = 0for 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

Python paramiko模块基本使用(一)相关推荐

  1. python paramiko并发_使用Python paramiko模块利用多线程实现ssh并发执行操作

    1.paramiko概述 ssh是一个协议,OpenSSH是其中一个开源实现,paramiko是Python的一个库,实现了SSHv2协议(底层使用cryptography). 有了Paramiko以 ...

  2. python paramiko模块中设置执行命令超时值

    经常使用paramiko工具对几百台设备进行管理,但是由于服务器本身或是网络原因,有时返回值回不来,然后程序就看在那里一直等待,这个时候后需要设置一个超时值.paramiko模块中执行命令代码如下: ...

  3. python paramiko模块 远程上传目录文件

    目录 上传目录 上传文件 上传目录 python用paramiko模块默认中只可以上传文件,在网上也没有找到合适的直接上传目录的方法,所以用os.walk方法和paramiko结合写了一个上传目录的方 ...

  4. python paramiko模块

    paramiko模块 1. 介绍: paramiko是一个用于做远程控制的模块,使用该模块可以对远程服务器进行命令或文件操作,值得一说的是,fabric和ansible内部的远程管理就是使用的para ...

  5. python paramiko模块下载_Python自动化运维实战:使用Python管理网络设备

    现在,我们已经知道如何在不同的操作系统中使用和安装Python以及如何使用EVE-NG搭建网络拓扑.在本章中,我们将学习如何使用目前常用的网络自动化库自动完成各种网络任务.Python可以在不同的网络 ...

  6. python paramiko 模块简介(SSH2协议)

    一:简介 paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接. 由于使用的是python这样的能够跨平台运行的语言,所以所有python支 ...

  7. Python paramiko 模块详解与SSH主要功能模拟

    我们知道,通过SSH服务可以远程连接到Linux服务器,查看上面的日志状态,批量配置远程服务器,文件上传,文件下载等,Python的paramiko模块同样实现了这一功能. 首先我们需要安装这一模块, ...

  8. Python Paramiko模块的使用

    Windows下有很多非常好的SSH客户端,比如Putty.在python的世界里,你可以使用原始套接字和一些加密函数创建自己的SSH客户端或服务端,但如果有现成的模块,为什么还要自己实现呢.使用Pa ...

  9. 【代码】python paramiko模块代码示例:远程执行命令及上传和下载

    执行命令 - 通过用户名和密码连接服务器 #!/usr/bin/env python #coding:utf-8import paramikossh = paramiko.SSHClient() ss ...

最新文章

  1. 几道题目理解JavaScript作用域、作用域链、预解析规则、表达式
  2. php backdoor creator encoder,Raven2 渗透(phpmailer漏洞+UDF提权)
  3. jparepository查询所有_JPA – JpaRepository 中使用的查询方法
  4. jdk1.8 Windows安装全过程详尽版
  5. linux vim 添加注释_vim基础教程
  6. 找不到可安装的isam怎么解决_安装系统找不到硬盘怎么办
  7. matlab流量结构分析,科学网-分享求解“结构分解分析(SDA)”各项均值的MATLAB程序-计军平的博文...
  8. Struts2文件上传与下载
  9. Android网络编程5之OkHttp2.x用法全解析
  10. 网易详述8个月全过程:员工申请仲裁要求支付61万赔偿
  11. 先验 超验_经验、先验、超验
  12. [历年IT笔试题]2014微软校园招聘笔试试题
  13. HTTP状态码(200、302、404、503)
  14. NMI(Normalized Mutual Information)
  15. 学习SEO有别的味道
  16. python selenium+Firefox 模拟浏览器操作
  17. 决策树与XGBOOST
  18. QChart数据可视化应用
  19. 实训项目——多语言学习app 总结报告
  20. 阿里云ACP云计算认证通过总结

热门文章

  1. 模块使用:time、datetime、calendar、sys、os、os.path、normcase和normapath、random、json、pickle...
  2. 《Spring攻略(第2版)》——1.5 指定Bean引用
  3. 前端技术学习之选择器(十三)
  4. URAL 1404. Easy to Hack! (模拟)
  5. dedecms5.7添加栏目时以简拼作目录名 以拼音首字母作文件夹名称
  6. 微软从安卓那里获取的盈利比重WinPhone 7还多
  7. ASP.NET实现页面传值的几种方法
  8. 叮叮叮~~~~网络面试题(一)来了☺
  9. java 接口api设计的注意事项_Java接口设计原则
  10. 小程序css之圆角边框