跨平台信息获取小工具

# coding=utf-8import paramikoimport osimport timeimport xlrdimport xlwtimport openpyxl

all_row = []

class read_excel(object):    def __init__(self, num):         self.num = num         self.num = num    def read_excel(self):        filePath = os.path.join(os.getcwd(), ‘D:\浙商银行\IP.xlsx‘)

        wb = openpyxl.load_workbook(filePath)  # 打开excel文件        ws = wb[‘Sheet1‘]        res = ws.cell(row=1, column=1).value  # 获取单元格的内容        # print(res)        # print(wb.sheetnames)                    # 显示excel文件的所有sheet名字        print(ws.min_row, ws.max_row, ws.max_column, ws.min_column)  # 单元格的行数、列数; max_row:最大行、max_column:最大列        print(‘*******************************************************‘)        # all_row = []        for row in ws.rows:  # 按行获取单元格(Cell对象) - 生成器            ev_row = []            for cell in row:                value = cell.value                ev_row.append(value)            all_row.append(ev_row)            print("ev_row:", ev_row)            print(‘*******************************************************‘)            print(all_row)            print(len(all_row))

class acquisition_of_information(read_excel):

    def __init__(self, num, name):        # self.num = num        self.num = num        print("name:", name)    def ssh2(self):        # 创建SSHClient实例对象        ssh = paramiko.SSHClient()        # 调用方法,标识没有远程机器的公钥,允许访问        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())        len1 = len(all_row)        # 连接远程机器 地址端口用户名密码        for num in range(0, len1):            fo = open(all_row[num][0] + ".log", "wb+")            fo.truncate()  # 清空文件内容            try:                ssh.connect(all_row[num][0], 22, all_row[num][1], all_row[num][2])            except IOError:                print   ("连接服务器失败,IP:{0}".format(all_row[num][0]))            else:                print   ("连接服务器成功,IP:{0}".format(all_row[num][0]))            print("num:", num)            # 创建目录            stdin, stdout, stderr = ssh.exec_command("ip a | grep 192 | awk ‘{print $2}‘")            fo.write(stdout.read())            str = "***************************" \                  "***************************\n"            str = str.encode()            fo.write(str)            stdin, stdout, stderr = ssh.exec_command("uname -a | grep -i ‘linux‘ | wc -l")            res = stdout.read()            print("res:", res)            if res == b‘1\n‘:                str = "df -Ph\n"                str = str.encode()                fo.write(str)                stdin, stdout, stderr = ssh.exec_command("df -Ph")                fo.write(stdout.read())                str = "***************************" \                      "***************************\n"                str = str.encode()                fo.write(str)            else:                str = "df -Pg\n"                str = str.encode()                fo.write(str)                stdin, stdout, stderr = ssh.exec_command("df -Pg")                fo.write(stdout.read())                str = "***************************" \                      "***************************\n"                str = str.encode()                fo.write(str)            str = "cat .profile\n"            str = str.encode()            fo.write(str)            stdin, stdout, stderr = ssh.exec_command("cd /root && cat .profile")            res, err = stdout.read(), stderr.read()            fo.write(res)            str = "***************************" \                  "***************************\n"            str = str.encode()            fo.write(str)            str = "arp -a\n"            str = str.encode()            fo.write(str)            stdin, stdout, stderr = ssh.exec_command("arp -a")            res, err = stdout.read(), stderr.read()            fo.write(res)            str = "***************************" \                  "***************************\n"            str = str.encode()            fo.write(str)

            str = "netstat -rn\n"            str = str.encode()            fo.write(str)            stdin, stdout, stderr = ssh.exec_command("netstat -rn")            res, err = stdout.read(), stderr.read()            fo.write(res)            str = "***************************" \                  "***************************\n"            str = str.encode()            fo.write(str)

            str = "cat /etc/rc.local\n"            str = str.encode()            fo.write(str)            stdin, stdout, stderr = ssh.exec_command("cat /etc/rc.local")            res, err = stdout.read(), stderr.read()            fo.write(res)            str = "***************************" \                  "***************************\n"            str = str.encode()            fo.write(str)

            str = "cat /etc/hosts\n"            str = str.encode()            fo.write(str)            stdin, stdout, stderr = ssh.exec_command("cat /etc/hosts")            res, err = stdout.read(), stderr.read()            fo.write(res)            str = "***************************" \                  "***************************\n"            str = str.encode()            fo.write(str)

            str = "netstat -an|grep LISTEN*\n"            str = str.encode()            fo.write(str)            stdin, stdout, stderr = ssh.exec_command("netstat -an|grep LISTEN*")            res, err = stdout.read(), stderr.read()            fo.write(res)            str = "***************************" \                  "***************************\n"            str = str.encode()            fo.write(str)

            str = "ps -ef | grep java\n"            str = str.encode()            fo.write(str)            stdin, stdout, stderr = ssh.exec_command("ps -ef | grep java")            res, err = stdout.read(), stderr.read()            fo.write(res)            str = "***************************" \                  "***************************\n"            str = str.encode()            fo.write(str)

            str = "ps -ef | grep zabbix\n"            str = str.encode()            fo.write(str)            stdin, stdout, stderr = ssh.exec_command("ps -ef | grep zabbix")            res, err = stdout.read(), stderr.read()            fo.write(res)            str = "***************************" \                  "***************************\n"            str = str.encode()            fo.write(str)

            str = "ps -ef | grep ctm\n"            str = str.encode()            fo.write(str)            stdin, stdout, stderr = ssh.exec_command("ps -ef | grep ctm")            res, err = stdout.read(), stderr.read()            fo.write(res)            str = "***************************" \                  "***************************\n"            str = str.encode()            fo.write(str)            str = "crontab -l\n"            str = str.encode()            fo.write(str)            stdin, stdout, stderr = ssh.exec_command("crontab -l")            res, err = stdout.read(), stderr.read()            fo.write(res)            str = "--------------------------" \                  "***************************" \                  "***************************" \                  "---------------------------\n"            str = str.encode()            fo.write(str)            ssh.close()            fo.close()            num = num + 1

    def __del___(self, num):        self.num = num

class print_all_row(read_excel):    def print_all_row(self):        print("all_row[0][0]:", all_row[0][0])        print("all_row[0][1]:", all_row[0][1])        print("all_row[0][2]:", all_row[0][2])

if __name__ == ‘__main__‘:    info = acquisition_of_information(0, "zhouhaiwu")    info.read_excel()    info.ssh2()    par = print_all_row(0)    par.print_all_row()

原文地址:https://www.cnblogs.com/niaocaizhou/p/11107482.html

时间: 2024-10-06 21:56:07

跨平台信息获取小工具的相关文章

跨平台信息获取小工具第三版本(增加了继承、多线程、异常处理模块、excel表格内容剔除空格)

# coding=utf-8 import threadingimport paramikoimport osimport timeimport xlrdimport xlwtimport openpyxl all_row = []threads = [] class read_excel(object): def __init__(self, num): #threading.Thread.__init__(self) #self.threadID = threadID self.num =

Linux下显示IP地理位置信息的小工具-nali

一.简介 nali,名字取自中文“哪里”的拼音.nali包含一组命令行程序,其主要功能就是把一些网络工具的输出的IP字符串,附加上地理位置信息(使用纯真数据库QQWry.Dat).例如74.125.128.104会变成74.125.128.104[美国 加利福尼亚州山景市谷歌公司].查询是在本地进行,并不会进行联网查询,所以效率方面不会对原始命令产生什么影响. 目前包含以下几个命令: nali nali-dig nali-nslookup nali-traceroute nali-tracepa

迅雷VIP帐号获取小工具

自己写的迅雷vip帐号获取工具,主要是熟悉一下正则表达式 下载地址: 迅雷VIP获取工具 另附vip防踢补丁,不能使用最新迅雷,我使用的是迅雷尊享版2.0.12.258,使用了一段时间,至少没被踢出来过. http://files.cnblogs.com/files/ztsghr/%E8%BF%85%E9%9B%B7%E9%98%B2%E8%B8%A2%E9%98%B2%E6%8C%A4%E9%98%B2%E9%A1%B6%E8%A1%A5%E4%B8%81.zip

Linux——互联网搜索引擎nbtscan是一个扫描WINDOWS网络NetBIOS信息的小工具

nbtscan :2005年11月23日发布.NBTSCAN身材娇小,简单快速.但只能用于局域网,可以显示IP,主机名,用户名称和MAC地址等等... man nbtscan nbtscan 192.168.1.3/24 nbtscan 192.168.1.3-24 ntbscan -v -s 192.168.1.3/24 ntbscan -v -s 192.168.1.3-24

java 一个日志记录异常信息的小工具

package com.crm.mess.util; /** * * @author liangrui * @2015/1/12 * */ public class ExceptionsLog { public synchronized static String logClzInfo(Exception e) { StringBuffer sb = new StringBuffer(); sb.append(e.getClass() + " " + e.getMessage() +

SWF代码分析与破解之路 (YueTai VIP视频信息获取工具) Socket续篇

引言 上一篇 <Socket与站点保密应用 (隐藏链接的视频下载)>大大咧咧地从 WEB 讲 Socket.再到 TCP/IP 等协议,又再讲到 Wireshark 怎样抓IP包分析.最还要复习一下路由与网络的知识.真的涉及面太广了,仅仅能蜻蜓点水一一带过,只是将多领域的知识串烧也是不错的,能够起到一个归纳的作用.这篇针对 Flash 来进行.写作思路以解决这个问题的过程行为线索. 依次展示怎样使用 Flex Air 的 ServerSocket 和 Socket 实现简化版本号的 HTTP

Android设备网络、屏幕尺寸、SD卡、本地IP、存储空间等信息获取工具类

Android设备网络.屏幕尺寸.SD卡.本地IP.存储空间.服务.进程.应用包名等信息获取的整合工具类. 1 package com.qiyu.ddb.util; 2 3 import android.annotation.SuppressLint; 4 import android.annotation.TargetApi; 5 import android.app.Activity; 6 import android.app.ActivityManager; 7 import androi

python学习之最简单的获取本机ip信息的小程序

文章是从我的个人博客粘贴过来的,大家可以直接访问我的个人博客哦 http://www.iwangzheng.com 获取本机ip信息的命令ifconfig总是在用,这次拿到pyhton代码里,感觉python好麻烦啊,每次都要import. 可以在程序里直接read出来,也可以先在命令行执行ifconfig > xx.txt,这样可以直接访问倒入后的文本信息. 这个小程序有个问题,与朋友讨论了还没解决彻底,如果用findall是可以匹配所有的,但是怎么解决用match只匹配一次的问题呢,当然如果

微信开发调试小工具进化→微信用户发送信息模拟器发布!——这标题起真是好数码暴龙的说

直接说正题吧.最近在做微信第三方服务器.在模拟用户发过来的请求方面,网上流传着一个“微信开发调试小工具”,谁做都不知道了.反正我觉得那个东西看起来挺不爽的,因为其信息发送类型不是很全面,于是我就把它反编译过来自己重写一个了. 我复用了它原本项目的一个类和几个方法 .与原版相比,功能改进如下: 1涵盖了迄今为止所有的信息类型和事件类型(具体的参见微信官方文档里面的接收信息节点); 2对于所有参数都有相关的提示信息 3参数的所属范围除了少数外都用groupbox圈了起来,更加直观地看到了各类信息之间