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. ios协议和委托

    在iPhone开发协议和委托是常接触到的东西,到底什么是协议什么是委托,他们什么关系? 一 协议 (1)协议相当于没有与类相关联的接口,他申明一组方法,列出他的参数和返回值,共享给其他类使用,然后不进 ...

  2. 使用 dotnet core 和 Azure PaaS服务进行devOps开发(Web API 实例)

    作者:陈希章 发表于 2017年12月19日 引子 这一篇文章将用一个完整的实例,给大家介绍如何基于dotnet core(微软.NET的最新版本,支持跨平台,跨设备的应用开发,详情请参考 https ...

  3. 读取指定文件夹下的全部文件,可通过正则进行过滤,返回文件路径数组 -- 基于node的一个函数

    var fs = require('fs'); // 模板文件夹路径 var templateDirectory = '../src'; //相对于当前文件的相对路径 //var templateDi ...

  4. 剑指Offer_4_二维数组中的查找

    题目描述       在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数.       ...

  5. Codeforces Round #257 (Div. 2) A. Jzzhu and Children(简单题)

    题目链接:http://codeforces.com/problemset/problem/450/A ------------------------------------------------ ...

  6. android 自己创建一个凝视模板

    android  自己创建一个凝视模板 作为一名程序猿 不仅要有一个写代码的能力,养成一个良好的编写习惯也是非常重要的. 今天给大家具体介绍一下怎样创建凝视模板,给每一个类和方法都自己手动去凝视信息也 ...

  7. 以流方式读写文件:文件菜单打开一个文件,文件内容显示在RichTexBox中,执行复制、剪切、粘贴后,通过文件菜单可以保存修改后的文件。

    MainWindow.xaml文件 <Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation&q ...

  8. 腾讯云数据库团队:MySQL语句复制(SBR)的缺陷列举

    作者介绍: 赵伟 腾讯云TDSQL数据库开发者 MySQL (这里的MySQL是指广义的mysql,包括oracle,mysql,percona,mariadb等)的Statement Based R ...

  9. Docker for Windows 使用入门

    欢迎来到Docker for Windows! Docker是用于创建Docker应用程序的完整开发平台,Docker for Windows是在Windows系统上开始使用Docker的最佳方式. ...

  10. 使用python实现群发邮件

    最近在工作时,需要实现在公司开发的调度系统上实现:将每天产生的游戏数据查询统计出,并发送邮件给数据分析的开发人员. 考虑到python语言的简洁易上手,在我没有任何python基础的情况下,十分轻松的 ...