1.通过调用阿里SDK,将获取到的ECS信息存入数据库,如果不知道SDK怎么使用,查看:01.阿里云SDK调用,获取ESC主机详细信息

2.import aliSDK应用的是01.阿里云SDK调用,获取ESC主机详细信息脚本,放在同一路径下就可以直接使用。

 #  -*- coding:utf-8 -*-

 '''
获取阿里云ecs主机的基本情况,并入库
表结构:CREATE TABLE `f_ecs` (
`f_id` int(11) NOT NULL,
`f_name` varchar(50) DEFAULT NULL,
`f_public_ip` varchar(50) DEFAULT NULL,
`f_ip` varchar(50) DEFAULT NULL,
`f_cpu` int(4) DEFAULT NULL,
`f_memory` int(8) DEFAULT NULL,
`f_time` datetime DEFAULT NULL,
PRIMARY KEY (`f_id`),
KEY `f_name` (`f_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
''' import time
import pymysql
import aliSDK
conn = pymysql.connect(host='192.168.1.202',user='root', passwd='', db='ali', charset='utf8')
cur = conn.cursor() #查询
def Query(cur,sql):
cur.execute(sql);
return cur.fetchall(); #插入
def Insert(cur,sql):
cur.execute(sql);
conn.commit()
return (cur); #update
def Update(cur,sql):
cur.execute(sql);
conn.commit()
return (cur); for i in aliSDK.get_sys_info():
name = i['InstanceName'] #获取主机名
ip = i['PublicIpAddress']['IpAddress'] #获取公网ip
ip2 = i['InnerIpAddress']['IpAddress'] #内网ip
cpu = i['Cpu'] #cpu个数
mem = i['Memory'] #内存大小
hostname = Query(cur,r"SELECT f_name,f_public_ip,f_ip,f_cpu,f_memory from t_ecs where f_ip='%s';" %(ip2[0]))
if hostname:
if hostname[0][2] != ip2[0] or hostname[0][3] != cpu or hostname[0][4] != mem:
if ip: #因为公网ip可能没有,所以在有公网ip和无公网ip中,sql语句会略微不同
Update(cur,r"UPDATE t_ecs SET `f_public_ip`='%s', `f_ip`='%s', `f_cpu`='%s', `f_memory`='%s', `f_time`=now() WHERE f_name='%s';" %(ip[0], ip2[0], cpu, mem, name))
else:
Update(cur,r"UPDATE t_ecs SET `f_ip`='%s', `f_cpu`='%s', `f_memory`='%s', `f_time`=now() WHERE f_name='%s';" %(ip2[0], cpu, mem, name))
else:
if ip:
Insert(cur, r"INSERT INTO t_ecs (`f_name`, `f_public_ip`, `f_ip`, `f_cpu`, `f_memory`, `f_time`) VALUES ('%s', '%s', '%s', %s, %s, now());" %(name, ip[0], ip2[0], cpu, mem))
else:
Insert(cur, r"INSERT INTO t_ecs (`f_name`, `f_ip`,`f_cpu`, `f_memory`, `f_time`) VALUES ('%s', '%s', %s, %s, now());" %(name , ip2[0], cpu, mem))
cur.close()
conn.close()

3.当你账号下的ECS主机信息改变时,重复执行此脚本也能自动更新数据库的信息。

4.此脚本没有删除的功能。

####后续学习中,跟Flask框架结合####

02.将SDK获取到的ECS主机信息入库的更多相关文章

  1. asp.net获取客户端浏览器及主机信息

    在线预览效果:http://tool.hovertree.com/info/client/ 其中aspx页面的控件代码: <asp:ListBox runat="server" ...

  2. 【转】C#获取客户端及服务器端主机信息及其获取IP地址

    原文发布时间为:2009-10-28 -- 来源于本人的百度文章 [由搬家工具导入] 小结: 1、REMOTE_ADDR 不可被修改,但是可能会获得代理服务器的IP,而不是实际客户端的IP。 2、通过 ...

  3. 阿里云ECS主机自定义进程监控

    由于业务的关系我们用的是阿里云的ECS主机,需要对业务进程需要监控,查看后发现阿里云提供自定义监控SDK,这有助于我们定制化的根据自身业务来做监控,下面我就根据业务需求来介绍一个简单的自定义监控配置 ...

  4. 阿里云ECS主机多个网站配置,是有先后顺序的

    注意:阿里云ECS主机多个网站配置,是有先后顺序的: 进入路径:/alidata/server/httpd-2.4.2/conf/vhosts/  注意这个2.4.2是自己的版本不一样,但是找到 se ...

  5. 使用高德地图SDK获取定位信息

    使用高德地图SDK获取定位信息 第一步: 在高德官网下载SDK,如我这里需要获取定位信息,故仅下载"定位功能" 第二步: 注册成为开发者,并创建应用获取相应的key.其中,在使用A ...

  6. Linux 网络编程基础(2)-- 获取主机信息

    前一篇已经介绍了最基本的网络数据结构.这篇介绍一下获取主机信息的函数 举个例子,想要通过代码的方式从百度获取当前的时间,怎么做?我们不知道百度的IP地址啊,这代码怎么写?还好,Linux提供了一些AP ...

  7. PHP通过ZABBIX API获取主机信息 VS 直接从数据库获取主机信息

    最近项目需要获取linux主机的一些信息,如CPU使用率,内存使用情况等.由于我们本身就装了zabbix系统,所以我只用知道如何获取信息即可,总结有两种方法可以获取. 一.通过ZABBIX API获取 ...

  8. 主机性能监控之wmi 获取系统信息及内存性能信息

    标 题: 主机性能监控之wmi 获取系统信息及内存性能信息作 者: itdef链 接: http://www.cnblogs.com/itdef/p/3990240.html 欢迎转帖 请保持文本完整 ...

  9. Java-Runoob-高级教程-实例-时间处理:02. Java 实例 - 获取当前时间

    ylbtech-Java-Runoob-高级教程-实例-时间处理:02. Java 实例 - 获取当前时间 1.返回顶部 1. Java 实例 - 获取当前时间  Java 实例 以下实例演示了如何使 ...

随机推荐

  1. python网络编程之单线程之间的并发

    单线程之间的并发就是利用一个线程实现并发的效果,也就是利用了cup遇到阻塞的那段时间去做别的事情,从而提高了cup的利用率,使之在单个线程中就实现了并发的效果. 下面就是一个简单的服务端单个线程实现并 ...

  2. Python 数据库备份脚本

    #!/usr/bin/python########################################################### Created date: 2017/12/7 ...

  3. Android开发之漫漫长途 番外篇——内存泄漏分析与解决

    该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列.该系列引用了<Android开发艺术探索>以及<深入理解And ...

  4. PHP设置环境变量

    如果提示php命令不存在.说明未设置.设置方法如下 方法一:直接运行命令 [PHP] 纯文本查看 复制代码 ? 1 export PATH=$PATH:/usr/local/xxxx/php/bin ...

  5. MongoDB入门学习(一):MongoDB的安装和管理

    以前用MySQL数据库,整天都是写大堆大堆的SQL语句,要记住这些SQL关键字都要花好几天时间,写的蛋都爆了,当接触到MongoDB的时候,发现不用写SQL,瞬间觉得高大上,瞬间产生了学习使用它的冲动 ...

  6. EntityFrameworkCore v1.1.1 问题汇总

    随着宇宙第一IDE的最新版本发布[2017/3/7],AspNetCore 和EntityFrameworkCore(团队)都发布了最新的代码. 不过在我看来,这些到还不是最重要的.最重要的是dotn ...

  7. Cesium几个案例介绍

    前言 本文为大家介绍几个Cesium的Demo,通过这几个Demo能够对如何使用Cesium有进一步的了解,并能充分理解Cesium的强大之处和新功能.其他的无需多言,如果还不太了解什么是Cesium ...

  8. jsp内置对象 的使用范围和类型【说明】

    jsp内置对象 jsp内置对象有以下9种,我们会在后面的章节中分别介绍他们.这9种对象例如以下: 名称 类型 使用范围 request javax.servlet.http.HttpServletRe ...

  9. HDOJ 1507 Uncle Tom&#39;s Inherited Land*

    直接对每一个格子进行dfs结果除以2能够得到答案可是有大量反复的结果,不好输出答案. 能够仅仅对横纵坐标相加是奇数的格子dfs.... Uncle Tom's Inherited Land* Time ...

  10. eclipse中JDK、struts2、Spring、Hibernate源码查看

    一般,我们导入的只有jar文件,所以看不到对于的java文件,如果需要看源码,必须下载对应开源包的源码,一般都是zip文件,比如Spring,下载spring-framework-2.0.8-with ...