Fabric的核心API主要有7类:带颜色的输出类(color output)、上下文管理类(context managers)、装饰器类(decorators)、网络类(network)、操作类(operations)、任务类(tasks)、工具类(utils)。
Fabric提供了一组操作简单但功能强大的fabric.api命令集,简单地调用这些API就能完成大部分应用场景的需求,Fabric支持的常用命令及说明如下·local:执行本地命令,如local(’uname-s’)。
- lcd:切换本地目录,如lcd(’/home’)。
- cd:切换远程目录,如cd(’/data/logs/’)。 run:执行远程命令,如run(’free -m’)。
- sudo:以sudo方式执行远程命令,如sudo(’/etc/init.d/httpd start’)。
- put:上传本地文件到远程主机,如put(’/home/user.info’,’/data/user.info’)。
- get:从远程主机下载文件到本地,如get(’/home/user.info’,’/data/user.info’)。
- prompt:获得用户输入信息,如prompt(’please input user password:’)。
- confirm:获得提示信息确认,如confirm(’Test failed,Continue[Y/N]’)。
- reboot:重启远程主机,如reboot()
- @task:函数修饰符。新版本的Fabric对面向对象的特性和命名空间有很好的支持。面向对象的继承和多态特性,对代码的复用极其重要。新版本的Fabric定义了常规的模块级别的函数,并带有装饰器@task,这会直接将该函数转化为task子类。该函数名会被作为任务名,后面会举例说明@task的用法。
首先来看一下@task的用法,可以为任务添加别名,操作如下:
其中,fab是faric在命令行的一个入口,-f表示后面加一个文件,-l表示显示定义好的任务函数名并退出。