摘要: 上节我们已经把fabric给配置好了。这节我们通过fabric编写批量执行服务器任务和自动化运维管理。先介绍下fabric的特点,这个在官方文档里面已经介绍过:1 代码可读性强,完全是python语言。2 封装了本地、远程操,内置了一些方法。3 可以根据需求灵活的定义参数。4 角色定义,方便批量管理。常用的配置参数:env.host -- 主机ip,当然也可以-H参数指定env.password -- 密码,打好通道的请无视env.roledefs -- 角色分组,比如:{'web': ['x', 'y'], 'db': [阅读全文
posted @ 2013-05-23 20:26 老王python 阅读(850) 评论(0) 编辑
摘要: fabric的安装可以选择用python的pip安装或者easy_install来安装。在xubuntu下,我这里用的是sudo apt-get install fabric来安装安装完以后我们进入控制台,然后improt fabric导入下模块,如果没报错,说明安装模块成功。如果你是2.5的话,那需要写个声明:from __future__ import with_statement2.6+的就不需要了。下面演示一个最简单的程序。#!/usr/bin/pythonfrom fabric.api import rundef host_os(): run('uname -s')保阅读全文
posted @ 2013-05-23 20:25 老王python 阅读(309) 评论(0) 编辑
摘要: python默认的成员函数和成员变量都是公开的,python 私有属性和方法没有类似别的语言的public,private等关键词来修饰。 在python中定义私有变量只需要在变量名或函数名前加上 "__"两个下划线,那么这个函数或变量就会为私有的了。 在内部,python使用一种 name mangling 技术,将 __membername替换成 _classname__membername,所以你在外部使用原来的私有成员的名字时,会提示找不到。 比如:class Person: def __init__(self): self.__name = 'haha&#阅读全文
posted @ 2013-05-23 20:24 老王python 阅读(9631) 评论(0) 编辑
摘要: 如果你需要自定义异常的话,可以从Exception类派生。 在这个例子中,默认的__init__()异常已被我们重写。>>> class MyError(Exception):... def __init__(self, value):... self.value = value... def __str__(self):... return repr(self.value)...>>> try:... raise MyError(2*2)... except MyError as e:... print 'My exception occurred阅读全文
posted @ 2013-05-23 20:23 老王python 阅读(4667) 评论(0) 编辑