糖豆贴心提醒,本文阅读时间6分钟
因工作需求要写一个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这个变量就行了,然后就开始给脚本升级再加些代码让它处理一下返回信息,写到日志中。
最后脚本最终版本是:
今日值班: 马哥教育三号女神学习顾问,暖心之处甜过初恋,脑洞大开会LOL神迹,可正经可搞笑,常陪伴0基础学员高效成长,深夜凌晨常有她与你的陪伴,据说她服务的学员是成长最快的。
内容沟通、职业成长和课程学习,可添加学习顾问:
【扫一扫即可撩】
特别提醒
马哥教育Linux精英班24期郑州校区抢座招募开始!
优惠两重享
福利一:前二十位报名者,立享学费直降四百元优惠【仅限前二十人】;
福利二:课程开班,报名即可送马哥精心编制实体书一本【每日限额】;
福利三:课程开班,赠送马哥教育云学堂智能化学习系统权限1个(价值1999元)和线下真实企业级服务器使用资格(价值2999元)【仅限本期】;