存档

文章标签 ‘多线程’

多线程更新线上服务器

2012年11月15日 eric 313 条评论

好久没有更新过blog了,把自己写的一个多线程更新的脚本共享给大家,如果有什么疑问过着建议欢迎留言,以后我会把写的一个简单的通过页面更新线上服务的程序open 出来。 写这个脚本当然要说一下场景: 1,有一批web服务器,上面跑着相同的应用,目录结构一样。 2,更新时候注定要备份、删除缓存(不备份小心死人,删除缓存必要啊,不然新上的代码会不生效) 3,更新时必然我们要记录日志,是否连接服务器超时、备份时候成功、更新是否成功。 好了,有了结构,有了日志,有了备份,那么就不怕升级失败了。 先说代码为解决的一个问题,因为要开启多线程,所以日志记录的有点混乱,比如 ip 从 192.166.1.2 更新到 192.168.1.254 ,记录的日志可能第一行记录是 1.2 那么第二行可能记录 1.6 ,不过日志肯定每个服务的连接和返回日志都记录了。 脚本代码主要引入了 paramiko 类,有人说你为何不用 fabric,大哥我用了,他非要执行命令,结合 shell 来执行还是不错的,但是哥我测试想用单个脚本文件执行,我也做过测试,设置 env 环境变量后的确可以,但是比较慢,而且相当麻烦。所以哥我选择了 paramiko 用了一段时间,很稳定速度不错。 废话不多说,那么我们来看下代码: 1 #!/usr/bin/python2.6 2 #-*- coding:utf-8 -*- 3 import paramiko 4 import commands 5 import pexpect 6 import MySQLdb 7 import logging 8 import threading 9 import [...]

分类: linux 标签: , ,