专栏首页北京马哥教育记一次python脚本的编写过程

记一次python脚本的编写过程

因工作需求要写一个python脚本,来测试memcache服务器。

因为第一次写python脚本在线上运行,所以不敢大意。而又因为我自己看着python教程自学了一点python知识就赶脚自己能写出来。。。。

结果花了四五个小时愣是没写出来。

第一回合

因为要测试memcache服务就直接用python的memcache插件python-memcached。

直接yum安装:

安装好之后来测试下:

测试成功连接到memcached,但是如果当memcache出现故障时该如何获得错误信息呢?

这是我在那天下午一直纠结的问题。

然后通过help(memecache)帮助查看memcache文档信息,查找到有个方法可以获得memcache的状态信息——get_stats()。

然后脚本版本一就出炉了:

脚本出来,很简单,可是用了很长时间。

这个只能判断出host或端口出错的时候,对于连接超时的现象却没有很好的显示出来,对于host或者port那个方面出问题了也没有很好的区分。

问题有了脚本写的还是不行的,然后又开始谷歌、百度等等一系列的搜索。

最后,同事给提供一个python的memcache插件——umemcached 。

第二回合

开始开安装umemcache 下载地址:

如果报错的话,直接yum install python-devel就行了。 安装完成后先来测试一下

这个umemcache插件返回的错误信息要好的多,只要把这些错误信息过滤一下就行了、

这就要用到python的异常处理了,然后又开始了新一轮的谷歌、百度并查到了python的try except处理异常的模块。

try except模块可以捕捉到异常,可是异常信息总是获取不到,本以为让脚本结果返回到日志就行了,可是测试结果python脚本直接打印出失败信息,不会通过重定向到文件中。

下面是脚本和测试

脚本执行后如果服务器端有错误会直接跳出来。

以上是错误信息。 然后又一次查询如何获得异常信息,最后还搞了自定义异常等等,就这样一下午的时光没了……

第三回合

问题一直拖到了第二天上午。

自己实在是搞不出来,但还是不甘心,第一次写python脚本就是这样的结果,也太衰了吧!

所以就又开始搞这个脚本,找一下有关python处理异常的文章,真不巧看一篇文章是有关介绍python异常模块!

一边看一边试,突然看到可以把异常写到文件中,这回可好了,总算把问题给解决了,这里放一个图片从那个文章中截取的。

从这个脚本中我看到了希望! 然后我的脚本就变成这样:

只要处理message这个变量就行了,然后就开始给脚本升级再加些代码让它处理一下返回信息,写到日志中。

最后脚本最终版本是:

本文分享自微信公众号 - 马哥Linux运维(magedu-Linux),作者:爱程序

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-03-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 存储基础:DAS/NAS/SAN存储类型及应用

    一. 硬盘接口类型 1. 并行接口还是串行接口 (1) 并行接口,指的是并行传输的接口,比如有0~9十个数字,用10条传输线,那么每根线只需要传输一位数字,即可...

    小小科
  • 黑客们会用到哪些Python技术?

    学Python最简单的方法是什么?推荐阅读:Python开发工程师成长魔法 Python已经成为漏洞开发领域的行业标准,读者会发现大多数概念验证工具都是用Pyt...

    小小科
  • 编写Linux Shell脚本的最佳实践

    来自:Myths的个人博客 作者:myths 链接:https://blog.mythsman.com/2017/07/23/1/(点击尾部阅读原文前往) 前言...

    小小科
  • python-day01

      已经从事运维工作五年半的时间了,如今的收入也自我感觉良好。可是,本来以为学习网络技术以及服务器技术,只做运维,不懂开发也行,然而,就在准备重新寻找工作,渴望...

    py3study
  • 从0开始的Python学习001快速上手手册

    Happy、Liu
  • VS2013+python+boost.

        解压boost.python后,用VS的[本机命令提示工具](开始-VS2013-VS Tools)进入到boost的文件夹,运行bootstrap.b...

    py3study
  • 【Python专题(一)】python环境搭建

    近几年python搭上了机器学习,人工智能的快车道,发展的如火如荼。不止是互联网,现在金融、国企甚至公务员朋友都有学python的计划。虽然我们也发现不管是微信...

    TechFlow-承志
  • 部署桌面虚拟化终端解决方案保证企业数据信息化管理安全性

    企业管理信息化是指定企业广泛利用现代化信息技术,开发信息资源,把先进技术、管理理念引入到管理流程中,实现管理自动化,提高企业管理效率和水平,从而促进...

    nc云终端yun0101.com
  • centos下安装python3的方法

    在https://www.Python.org/ftp/python/下找到您所需的python版本

    py3study
  • 开发应用专用的Substrate区块链!

    Substrate是开发应用特定区块链 (Application Specific Blockchain )的快速开发框架。与基于以太坊等公链开发的DApp相比...

    用户1408045

扫码关注云+社区

领取腾讯云代金券