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 = ['','','']
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模块基本使用(一)的更多相关文章
- Python Paramiko模块与MySQL数据库操作
Paramiko模块批量管理:通过调用ssh协议进行远程机器的批量命令执行. 要使用paramiko模块那就必须先安装这个第三方模块,仅需要在本地上安装相应的软件(python以及PyCrypto), ...
- python paramiko模块学习分享
python paramiko模块学习分享 paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接.paramiko支持Linux, Sola ...
- Python paramiko 模块
paramiko模块机遇SSH用于连接远程服务器并执行相关操作 SSHClient 用于连接远程服务器并执行基本命令 基于用户名密码连接: import paramiko # 创建SSH对象 ssh ...
- Python Paramiko模块
代码来自:http://www.cnblogs.com/wupeiqi/articles/4356675.html 今天学到了一个运维方面的利器:python的paramiko模块. paramiko ...
- python paramiko模块简介
一:简介 paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接. 由于使用的是python这样的能够跨平台运行的语言,所以所有python支 ...
- Python Paramiko模块安装和使用
1.简介 大家会发现,常见的解决方法都会需要对远程服务器必要的配置,如果远程服务器只有一两台还好说,如果有N台,还需要逐台进行配置,或者需要使用代码进行以上操作时,上面的办法就不太方便了. 使用par ...
- python paramiko 模块简单介绍
背景,公司的很多服务包括数据库访问都需要通过跳板机访问,为日常工作及使用带来了麻烦,特别数python直接操作数据更是麻烦了,所以一直想实现python 通过跳板机访问数据库的操作. 首先了解到了 p ...
- python paramiko模块简介及安装
一:简介 paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接. 由于使用的是python这样的能够跨平台运行的语言,所以所有python支 ...
- python paramiko模块SSH自动登录linux系统进行操作
1). Linux系统首先要开启SSH服务:service ssh status 如果没安装的话,则要:apt-get install openssh-server service ssh resta ...
随机推荐
- 关于linux crontab定时操作oracle不执行的问题解决方案
问题描述:启动定时任务对oracle表进行操作,但是手动执行脚本无问题,定时任务执行无结果不反馈消息 解决方案:以centos7为例吗,首先确定脚本可手动执行,然后检查/var/log/cron下的日 ...
- JWT学习小结
JWT全称JSON-Web-Tokens,是一套应对Http其无状态且明文传递请求的特性的规范,保证请求的安全性.我们一般用它来在服务端和客户端之间传递用户的身份信息,实现状态保持. 1,相较于常见的 ...
- return,break,continue三者区别
详解:http://www.cnblogs.com/yangdabao/p/6172210.html return:直接结束这个方法,后面所有代码不再执行,不管循坏外,还是循环内,全部停止,直接返回 ...
- obs源码uml
- zabbix批量添加被监控windows客户端
由于公司大部分用的是windows服务器,大概有50多台.如果是一台一台添加的话很是麻烦,如果数量更多的话那工作量可想而知.所以网络管理员通常都是非常懒的. 环境:公司虽是域环境,但是除了几台域服务器 ...
- XML的介绍使用
一.什么是XML? XML,Extensible Markup Language,扩展性标识语言.文件的后缀名为:.xml.就像HTML的作用是显示数据,XML的作用是传输和存储数据. 据说,java ...
- 微信小程序云函数Windows下安装wx-server-sdk
第一次上传部署云函数时,会提示这个,建议在这之前先安装一下node.js. https://nodejs.org/en/ 下载nodejs,然后直接安装,在cmd控制台输入node -v和npm -v ...
- goflyway简单使用
前言 一个朋友最近新买的搬瓦工ip突然被强了,要等10周左右才能免费更换ip.而恰巧在网上看到了Goflyway 进阶教程:KCP 协议复活被墙IP 决定试一试.在vultr上临时搭建了测试环境,可能 ...
- 2.NB-IoT及通信协议
NB-IoT 1.什么是NB-IoT? NB-IoT全称窄带物联网(Narrow Band IOT),构建于蜂窝网络,只消耗大约180KHz的带宽,可直接部署于GSM网络.UMTS网络或LTE网络,以 ...
- ajaxFileUpload 文件上传
源码: jQuery .extend({ createUploadIframe : function(id, uri) {//id为当前系统时间字符串,uri是外部传入的json对象的一个参数 //c ...