花了差不多一周的时候,把python学习了一下,昨天把一直以来非常想重写的nginx日志监控脚本用python重写了一下。重构的原因是原来的shell脚本,是30秒一执行,这样效率太低,并且有重复执行的可能,现在使用守护进程,一秒为一周期,并且可以避免重复执行。

先看代码:

功能我为了简便,使用了shell命令,editblocksip.sh脚本以前说过,就是操作nginx黑名单用的,此脚本还是受到了写php守护进程的启发,1、每次while循环,判断文件自身是否被修改,如果修改就结束,然后由进程守护shell再启用,2、中间的实现也非常简单,记录最近读取的行号,有新记录产生,就执行监控操作,3、过滤已屏蔽的403状态和自身ip地址,4、然后就是自己需要的一些屏蔽规则,有触发则调用editblocksip.sh,将此ip加入403黑名单,这样用户访问会显示我的403页面。

check_python.sh python进程守护队列代码

原理还是挺简单的,这里我也简单说一下我学习python后对于其感触。

总的来说,python语法上面和php的确有很大区别,其语法其实和js有很大的类似。python最大的特点就是他严格的缩进,他使用缩进来控制代码块,因为其没有{}这样的大括号,变量也和php一样使用了简单的引用计数来做优化,不过其import这样的导入方式其实效率不高,原因大家应该可以理解,我学习过程中还专门做了php和python的执行效率对比,while循环的话php应该比python快一半左右,当然这也不能说明什么,不过python的确是运维工作非常好的助手。

程序本天成,妙手偶得之!我们只是代码的搬运工!

转载请注明:http://www.521php.com/archives/1879/

发表评论

昵称:

网址:

eg.博客主题调用的是Gravatar头像,你可以通过邮箱注册获得头像.
/ 快捷键:Ctrl+Enter