脚本Python版本2.7

 #!/usr/bin/python
#-*- coding:utf-8 -*-
import os,sys
import time
import sys
import pycurl
URL="http://www.tianler.com"
c = pycurl.Curl()
c.setopt(pycurl.URL,URL)
c.setopt(pycurl.CONNECTTIMEOUT,5)
c.setopt(pycurl.TIMEOUT,5)
c.setopt(pycurl.NOPROGRESS,1)
c.setopt(pycurl.FORBID_REUSE,1)
c.setopt(pycurl.MAXREDIRS,1)
indexfile = open(os.path.dirname(os.path.realpath(__file__))+"/content.txt","wb")
c.setopt(pycurl.DNS_CACHE_TIMEOUT,30)
c.setopt(pycurl.WRITEHEADER,indexfile)
c.setopt(pycurl.WRITEDATA,indexfile)
c.setopt(pycurl.URL,URL)
c.setopt(pycurl.URL,URL)
try:
c.perform()
except Exception,e:
print"connection error:"+str(e)
indexfile.close()
c.close()
sys.exit()
NAMELOOKUP_TIME = c.getinfo(c.NAMELOOKUP_TIME)
CONNECT_TIME = c.getinfo(c.CONNECT_TIME)
PRETRANSFER_TIME = c.getinfo(c.PRETRANSFER_TIME)
STARTTRANSFER_TIME = c.getinfo(c.STARTTRANSFER_TIME)
TOTAL_TIME = c.getinfo(c.TOTAL_TIME)
HTTP_CODE = c.getinfo(c.HTTP_CODE)
SIZE_DOWNLOAD = c.getinfo(c.SIZE_DOWNLOAD)
HEADER_SIZE = c.getinfo(c.HEADER_SIZE)
SPEED_DOWNLOAD = c.getinfo(c.SPEED_DOWNLOAD)
print "HTTP状态码:%s"%(HTTP_CODE)
print "DNS解析时间:%.2f ms"%(NAMELOOKUP_TIME*1000)
print "建立连接时间:%.2f ms"%(CONNECT_TIME*1000)
print "准备传输时间:%.2f ms"%(PRETRANSFER_TIME*1000)
print "传输开始时间:%.2f ms"%(STARTTRANSFER_TIME*1000)
print "传输结束总时间:%.2f ms"%(TOTAL_TIME*1000)
print "下载数据包大小:%d bytes/s"%(SIZE_DOWNLOAD)
print "HTTP头部大小:%d bytes"%(HEADER_SIZE)
print "平均下载速度:%d bytes/s"%(SPEED_DOWNLOAD)

官网服务质量检测脚本(源码来自《Python自动化运维实战》第二版刘天斯)的更多相关文章

  1. Python自动化运维:技术与最佳实践 PDF高清完整版|网盘下载内附地址提取码|

    内容简介: <Python自动化运维:技术与最佳实践>一书在中国运维领域将有“划时代”的重要意义:一方面,这是国内第一本从纵.深和实践角度探讨Python在运维领域应用的著作:一方面本书的 ...

  2. python自动化运维-编写rsync+sersync安装脚本实现文件实时同步

    rsync+sersync组合可以实时监听目录的变化,实现实时同步数据. 具体安装教程可查看:http://www.osyunwei.com/archives/7447.html. 安装着实有些复杂, ...

  3. python常用运维脚本实例

    转载  file是一个类,使用file('file_name', 'r+')这种方式打开文件,返回一个file对象,以写模式打开文件不存在则会被创建.但是更推荐使用内置函数open()来打开一个文件 ...

  4. 转:python常用运维脚本实例

    python常用运维脚本实例 转载  file是一个类,使用file('file_name', 'r+')这种方式打开文件,返回一个file对象,以写模式打开文件不存在则会被创建.但是更推荐使用内置函 ...

  5. python常用运维脚本实例【转】

    file是一个类,使用file('file_name', 'r+')这种方式打开文件,返回一个file对象,以写模式打开文件不存在则会被创建.但是更推荐使用内置函数open()来打开一个文件 . 首先 ...

  6. Web电子商务网(三层)V2.0源码

    Web电子商务网(三层)V2.0源码 源码描述: 一.源码特点     采用三层架构开发,购物车功能 二.功能介绍 前台集成了产品在线展示,用户注册.在线调查.在线投稿 后台有类别管理\图书管理\订单 ...

  7. 厉害!这份阿里面试官 甩出的Spring源码笔记,GitHub上已经爆火

    前言 时至今日,Spring 在 Java 生态系统与就业市场上,面试出镜率之高,投产规模之广,无出其右.随着技术的发展,Spring 从往日的 IoC 框架,已发展成 Cloud Native 基础 ...

  8. Linux基础--------监控系统、进程管理、软件包管理-------free、dd、kill、 rpm、yum、源码安装python

    作业一:1) 开启Linux系统前添加一块大小为15G的SCSI硬盘 2) 开启系统,右击桌面,打开终端 3) 为新加的硬盘分区,一个主分区大小为5G,剩余空间给扩展分区,在扩展分区上划分1个逻辑分区 ...

  9. JMeter5.4.1源码IDEA构建&二次开发(实战)

    JMeter5.4.1源码IDEA构建&二次开发(实战) 目录 JMeter5.4.1源码IDEA构建&二次开发(实战) 1.下载源码 2.导入IDEA 2.1 先设置Gradle目录 ...

随机推荐

  1. WPF里的报警闪烁效果

    <esri:MarkerSymbol x:Key="FlashMarkerSymbol" OffsetX="41" OffsetY="41&qu ...

  2. Cheatsheet: 2016 02.01 ~ 02.29

    Web How to do distributed locking Writing Next Generation Reusable JavaScript Modules in ECMAScript ...

  3. Django migrations 重命名

    1:如果migrations文件中想要重命名文件,重命名后有一次修改models文件,再次执行python makegirations ******,再次执行migrate的时候发现报错了,在我往后的 ...

  4. JAVA封装、继承

    封装 1.概念: 将类的某些信息隐藏在类的内部,不允许外部程序访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问. 2.好处: a.只能通过规定的方法访问数据 b.隐藏类的实例细节,方便修改和实 ...

  5. Response.BinaryWrite()方法输出二进制图像

    protected void Page_Load(object sender, EventArgs e) { FileStream fs = new FileStream(Server.MapPath ...

  6. XAF学习资源整合大全

    近期有很多XAF初学者与我联系,我多数时间在重复很多入门问题,所以决定整理一篇XAF资源列表,方便大家查找资料,也请知晓其他资源的人留言或与我联系,我将新资源追加到本篇文章中,方便更多人. 一.本博客 ...

  7. Java vs. C#

    Java Program Structure C# package hello; public class HelloWorld {    public static void main(String ...

  8. winform自定义按钮菜单

    //填写其他报表按钮        private void btnWriteRep_Click(object sender, EventArgs e)        {            try ...

  9. Node.js在不同平台的安装方法步骤详解

    Mac平台下搭建node.js开发平台 安装方式 1 步骤: 下载mac版的.pkg文件(简单直接和Windows差不多) 安装方式 2 步骤: 安装xcode(命令:xcode-select --i ...

  10. Oracle存储过程-自定义数据类型,集合,遍历取值

    摘要 Oracle存储过程,自定义数据类型,集合,遍历取值 目录[-] 0.前言 1.Packages 2.Packages bodies 3.输出结果 0.前言 在Oracle的存储过程中,可能会遇 ...