抓取服务器硬件信息脚本

说明:
本例hard.py文件是抓取本地配置的脚本,然后往数据库写,写之前会做判断是否有该和数据,如果没有才会插入,如果没有不会插入数据
本例用的python版本是3.5,用的库有os,sys,time,psutil,pymysql。
脚本内容如下:

#!/usr/local/python3/bin/python3
import psutil,os,sys,pymysql,time
#cpu型号
cpu_model = os.popen(‘cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c|cut -c 10-50‘).read()
cpu_count = psutil.cpu_count()
cpu_core = psutil.cpu_count(logical=False)
#内存相关
info = psutil.virtual_memory()
#总内存(M)
total_memory = int(info.total/1024/1024/1024)
#用了多少内存(M)
use_memory = int(info.used/1024/1024)
#空闲内存(M)
free_memory = int(info.free/1024/1024)
#磁盘容量
D_result = 0
Disk_size = os.popen("fdisk -l|grep Disk|grep -v identifier|awk ‘{print $3}‘|sed ‘s/,//g‘").read()
with open(‘/tmp/a.txt‘,‘w‘) as f:
     f.write(Disk_size)
with open(‘/tmp/a.txt‘,‘r‘) as f1:
     for line in f1:
         line = line.strip(‘\n‘)
         D_result = D_result + float(line)
#IP地址
out = os.popen("ifconfig | grep ‘inet addr:‘ | grep -v ‘127.0.0.1‘ | cut -d: -f2 | awk ‘{print $1}‘ | head -1").read()
ip = out.split(‘\n‘)[0]
print(‘‘‘
机器配置如下:
cpu型号: %s
cpu逻辑数量: %s
cpu物理核心数: %s
内存(G): %s
磁盘容量(G): %s
IP地址: %s
‘‘‘%(cpu_model,cpu_count,cpu_core,total_memory,D_result,ip))
#插入库
db= pymysql.connect(host="192.168.1.14",user="abc",password="abc",db="cmdb",port=3306)
cur = db.cursor()
check_ip_sql = "select ip from cmdb_host where ip=‘%s‘"%ip
cur.execute(check_ip_sql)
result = cur.fetchone()
db.commit()
#判断插入的数据是否存在,如果存在不插入,反之则插入数据
if result == None:
     print("开始添加记录.......")
     time.sleep(1)
     sql_insert = "insert into cmdb_host(cpu,mem,disk,ip) values(‘%s‘,‘%sG‘,‘%sG‘,‘%s‘);" %(cpu_count,total_memory,D_result,ip)
     try:
       cur.execute(sql_insert)
       #提交
       db.commit()
       print("添加成功!^_^")
     except Exception as e:
       #错误回滚
       db.rollback()
     finally:
       db.close()
elif ip == result[0]:
     print("此条记录已添加过")
     pass

原文地址:http://blog.51cto.com/461884/2141246

时间: 2024-08-30 15:41:03

抓取服务器硬件信息脚本的相关文章

PHP curl模拟浏览器抓取网站信息

curl是一个利用URL语法在命令行方式下工作的文件传输工具. 官方解释 curl是一个利用URL语法在命令行方式下工作的文件传输工具.curl是一个利用URL语法在命令行方式下工作的文件传输工具.它支持很多协议:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP.curl同样支持HTTPS认证,HTTP POST方法, HTTP PUT方法, FTP上传, kerberos认证, HTTP上传, 代理服务器, cookies,

网络爬虫: 从allitebooks.com抓取书籍信息并从amazon.com抓取价格(2): 抓取allitebooks.com书籍信息及ISBN码

这一篇首先从allitebooks.com里抓取书籍列表的书籍信息和每本书对应的ISBN码. 一.分析需求和网站结构 allitebooks.com这个网站的结构很简单,分页+书籍列表+书籍详情页. 要想得到书籍的详细信息和ISBN码,我们需要遍历所有的页码,进入到书籍列表,然后从书籍列表进入到每本书的详情页里,这样就能够抓取详情信息和ISBN码了. 二.从分页里遍历每一页书籍列表 通过查看分页功能的HTML代码,通过class="current"可以定位当前页码所在span标签,此s

网络爬虫: 从allitebooks.com抓取书籍信息并从amazon.com抓取价格(3): 抓取amazon.com价格

通过上一篇随笔的处理,我们已经拿到了书的书名和ISBN码.(网络爬虫: 从allitebooks.com抓取书籍信息并从amazon.com抓取价格(2): 抓取allitebooks.com书籍信息及ISBN码) 接下来将通过ISBN码去amazon.com获取每本书对应的价格. 一.了解需要和分析网站 通过分析amazon.com得知,以ISBN码作为搜索关键字可查找到对应的书. 结果页码就有这本书的价格,既然价格是以$符号开头,那就可以通过正则表达式得到价格. 通过正则表达式匹配价格代码:

对抓取网页的脚本的研究

对抓取网页的脚本http://life2death.blog.51cto.com/7550586/1657133 的研究: 声明:本人只是拿来学习研究,谢谢浮夸往事大神. 一道企业shell编程实战题 http://oldboy.blog.51cto.com/2561410/1657042 本脚本对http://edu.51cto.com/的视频具有通用性,暂未发现bug,如有发现,请看官自行解决. ------------------------------------------------

python学习笔记-抓取网页图片脚本

初学者一枚,代码都是模仿网上的.亲测可用~ 运行脚本的前提是本机安装了httplib2模块 #!/usr/bin/python import os import re import string import urllib #author:reed #date:2014-05-14 def GetWebPictures(): url=raw_input('please input the website you want to download:') imgcontent=urllib.urlo

SpringCloud系列九:SpringCloudConfig 基础配置(SpringCloudConfig 的基本概念、配置 SpringCloudConfig 服务端、抓取配置文件信息、客户端使用 SpringCloudConfig 进行配置、单仓库目录匹配、应用仓库自动选择、仓库匹配模式)

1.概念:SpringCloudConfig 基础配置 2.具体内容 通过名词就可以发现,SpringCloudConfig 核心作用一定就在于进行配置文件的管理上.也就是说为了更好的进行所有微服务的配置项的管理,在 SpringCloud 设计架构里面就考虑到了针对于所有的核心配置文件(application.yml)进行的一项统一管理的工具. 2.1.SpringCloudConfig 的基本概念 现在可以思考一个问题:在一个实际的项目开发过程之中,有可能会出现有上百个微服务(创建微服务的标

Web Scraper 高级用法——抓取属性信息 | 简易数据分析 16

这是简易数据分析系列的第 16 篇文章. 这期课程我们讲一个用的较少的 Web Scraper 功能--抓取属性信息. 网页在展示信息的时候,除了我们看到的内容,其实还有很多隐藏的信息.我们拿豆瓣电影250举个例子: 电影图片正常显示的时候是这个样子: 如果网络异常,图片加载失败,就会显示图片的默认文案,这个文案其实就是这个图片的属性信息: 我们查看一下这个结构的 HTML(查看方法可见 CSS 选择器的使用的第一节内容),就会发现图片的默认文案其实就是这个 <img/> 标签的 alt 属性

抓取网页信息

winform的form.cs 1 using HtmlAgilityPack; 2 using System; 3 using System.Windows.Forms; 4 using Hqew.DMSFrame.Entity.ExpressionClips; 5 using System.Collections.Generic; 6 using Hqew.DMSFrame.Exception; 7 using System.Threading; 8 9 namespace PageGath

Android MaoZhuaWeiBo开发Service抓取个人信息-2

前面把主要的东西讲完了,之后就是数据的获取和解析显示出来了,那接下来我们就负责抓取数据的这块吧,首先我们需要 在清单文件里加载服务和活动 添加:. <activity android:name="com.neweriweibo.activity.OAuthActivity"/> <activity android:name=".MainActivity"/> <activity android:name="com.neweri