最近一直在学习python,可是工作中一直缺少机会用到这块功能.最近接到一个需求需要拉取6台客户端的某一天jetty日志.因为jetty的日志是保存在jetty的log目录下,以yyyy_mm_dd.stderrout.log的形式保存,所以我们只要创建一个脚本,传入需要查询日志的日期和需要查询日志的主机IP及用户密码,就可以将制定主机的指定日期的日志抓取到本地.
脚本的逻辑并不是很难,先模拟ssh访问指定主机,在指定目录下通过find找到指定文件,将该文件通过sftp或scp将文件传输至本地.通过shell脚本会非常轻松.为了考验自己的python水平,这次我们通过python的方式进行实现.主要用到的就是paramiko模块.
paramiko是一个可以连接远程主机及上传下载文件的一个第三方模块,他基于ssh2协议.官网地址是http://www.paramiko.org/,安装的方式非常简单,通过easy_install paramiko或者在pypi中下载安装包安装都可以.
安装完以后,我们通过之前我的那个实际案例来初步了解paramiko的远程连接和文件下载.
[root@Manatee ~]# cat pytest/paramiko
#!/usr/bin/env python
import paramiko
import sys
import os
loglist = []
#设定一个空列表用于存放日志文件名,因为一台主机中有多个jetty项目,可能同一天会有多个日志.
date = '2016_01_03'
#传入需要查询的日期,这步可以通过参数传入,或者读取配置文件实现
ip = '192.168.0.1'
#传入需要查询的主机IP,这步可以通过参数传入,或者读取配置文件实现
remoteuser = 'xxx'