使用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 = ['','','']
hours = ['','','','','','','','','']
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)

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

  1. Python Paramiko模块与MySQL数据库操作

    Paramiko模块批量管理:通过调用ssh协议进行远程机器的批量命令执行. 要使用paramiko模块那就必须先安装这个第三方模块,仅需要在本地上安装相应的软件(python以及PyCrypto), ...

  2. python paramiko模块学习分享

    python paramiko模块学习分享 paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接.paramiko支持Linux, Sola ...

  3. Python paramiko 模块

    paramiko模块机遇SSH用于连接远程服务器并执行相关操作 SSHClient 用于连接远程服务器并执行基本命令 基于用户名密码连接: import paramiko # 创建SSH对象 ssh ...

  4. Python Paramiko模块

    代码来自:http://www.cnblogs.com/wupeiqi/articles/4356675.html 今天学到了一个运维方面的利器:python的paramiko模块. paramiko ...

  5. python paramiko模块简介

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

  6. Python Paramiko模块安装和使用

    1.简介 大家会发现,常见的解决方法都会需要对远程服务器必要的配置,如果远程服务器只有一两台还好说,如果有N台,还需要逐台进行配置,或者需要使用代码进行以上操作时,上面的办法就不太方便了. 使用par ...

  7. python paramiko 模块简单介绍

    背景,公司的很多服务包括数据库访问都需要通过跳板机访问,为日常工作及使用带来了麻烦,特别数python直接操作数据更是麻烦了,所以一直想实现python 通过跳板机访问数据库的操作. 首先了解到了 p ...

  8. python paramiko模块简介及安装

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

  9. python paramiko模块SSH自动登录linux系统进行操作

    1). Linux系统首先要开启SSH服务:service ssh status 如果没安装的话,则要:apt-get install openssh-server service ssh resta ...

随机推荐

  1. JDK11&12 新特性学习

  2. 创建一个dynamics 365 CRM online plugin (九) - Context.Depth

    让我们来看看官方文档是怎么讲的 https://docs.microsoft.com/en-us/previous-versions/dynamicscrm-2016/developers-guide ...

  3. day02代码

    1.while.....else.....语句,break,continue,if,while,用户交互,输出,运算符 # 用户有三次登录机会 _username = 'tom' _password ...

  4. 第七届蓝桥杯省赛javaB组 第七题剪邮票

    剪邮票 如[图1.jpg], 有12张连在一起的12生肖的邮票.现在你要从中剪下5张来,要求必须是连着的.(仅仅连接一个角不算相连)比如,[图2.jpg],[图3.jpg]中,粉红色所示部分就是合格的 ...

  5. MessageFormat.format 包含单引号引起的不可替换

    MessageFormat.format("region = '{0}'", "en");实际结果是region = {0}如果需要被替换的话,需要用双单引号 ...

  6. Excel文件上传,高亮错误的行和列

    /// <summary> /// Excel模板写入错误信息 /// </summary> /// <param name="fileName"&g ...

  7. 如何去maven仓库下载jar包

    Maven仓库地址 : http://search.maven.org/ https://mvnrepository.com/ 或者你直接百度搜索 : maven仓库 第一个就是 我现在想下载myba ...

  8. Windows下安装Spark环境

    根据博客总结 https://blog.csdn.net/nxw_tsp/article/details/78281533 需要的安装软件可以在网盘下载: 链接:https://pan.baidu.c ...

  9. [UE4]镜像

    一.这是一个右手模型,通过镜像可以得到一个左右模型. 二.通过上图分析,镜面是X轴和Z轴形成的一个面,Y轴与XZ面垂直,因此就是镜像Y轴,将模型的Transform.Scale.Y设置为-1,即可得到 ...

  10. Tree Traversals Again

    An inorder binary tree traversal can be implemented in a non-recursive way with a stack. For example ...