本文实例讲述了Python的批量远程管理和部署工具Fabric用法。分享给大家供大家参考。具体如下:
Fabric是Python中一个非常强大的批量远程管理和部署工具,常用于在多个远程PC上批量执行SSH任务.
常见的使用方法大概总结如下:
1. 首先,要将批量执行的任务写入到一个fabfile.py中,
复制代码 代码如下:
# -*- coding:utf-8 -*-
from fabric.api import run, local, roles, env, cd
env.hosts=[
'192.168.1.110',
'192.168.1.111',
'192.168.1.112'
]
env.user="username"
env.password="password"
env.port=22
#env.parallel=True
#env.skip_bad_hosts=True
#env.timeout=1
#env.warn_only=True
# local用于在本地PC执行命令.
# run用于在远程PC执行命令.
def ls():
with cd('/home/workspace/project'):
local('touch 1.log')
with cd('/home/workspace/project2'):
local('touch 2.log')
#@parallel, 可以设置是否并行执行
#@serial
def pull():
with cd('/home/workspace/project'):
run('git pull')
def clean():
with cd('/home/workspace/project'):
run('bash clean.sh')
@hosts('192.168.1.113')
def robot(device):
with cd('/home/workspace/project'):
run('bash run.sh %s robot && sleep 1' % device)
以上就是一个简单的fabfile.py, 其中定义的函数均对应一个fab中的可执行命令.
其中有两个小的注意事项:
A.在远程机器的run.sh中如果要执行一些非系统常见的工具,最好指定为绝对路径. 且可以适当地使用nohup的方式.
B.执行其他脚本或者命令后最好加上sleep,以防止Fabric过早地关闭与远程PC连接的session,而导致执行任务失败.
2. 执行过程: fabric执行会默认选取当前目录下的fabfile.py文件,
复制代码 代码如下:
fab clean
fab pull
fab robot:hosts="192.168.1.115",device=5560
可以通过hosts参数给fabric传入指定的远程PC, 该hosts参数的优先级比env.hosts的要高.
也可以给fab中的命令传递参数,如device.
此外,还可以通过fab -f otherFabFile.py clean来指定其他的fabric文件.
如果需要并行执行的话,也可以传递参数如fab -P -z 15 pull, 15表示并行执行的PC数量.
以上,只是一些简单的用法,如果需要更高级的用法,可以关注该项目的github主页 https://github.com/fabric/fabric.
希望本文所述对大家的Python程序设计有所帮助。
- 上一篇:Python中的tuple元组详细介绍
- 下一篇:Linux下编译安装MySQL-Python教程
相关文章
相关视频
- 在Django框架中运行Python应用全攻略
- 在Python的Django框架中创建和使用模版
- python获取元素在数组中索引号的方法
- 浅谈python中截取字符函数strip,lstr...
- Python的批量远程管理和部署工具Fabric用...
- PHP开发基础教程之批量和指定删除用户
- php数据库操作之 批量和指定删除用户
- Python 基础教程
- Python 简介
- Python 环境搭建
网友评论
文明上网理性发言,请遵守 新闻评论服务协议
我要评论
立即提交
专题推荐
- 独孤九贱-php全栈开发教程
全栈 100W+
主讲:Peter-Zhu 轻松幽默、简短易学,非常适合PHP学习入门
- 玉女心经-web前端开发教程
入门 50W+
主讲:灭绝师太 由浅入深、明快简洁,非常适合前端学习入门
- 天龙八部-实战开发教程
实战 80W+
主讲:西门大官人 思路清晰、严谨规范,适合有一定web编程基础学习
php教程
认证0级讲师
- 最近文章
发布技术文章
- 最新文章
- 热门排行
- python之禅怎么打出来
- python怎么学
- boosting和bootstrap区别
- python库是什么意思
- python卸载后怎么也安装不上
- python安装后怎么不见了
- python怎么卸载模块
- python能做什么?是什么?
- pickle库的使用详解
- Anaconda的新手使用大全
- python爬虫是什么?为什么把python叫做爬虫?
- Python微信库:itchat的用法详解
- 关于python3学习基础知识总结
- python爬虫是什么
- 使用Python可以做什么
- python如何实现可视化热力图
推荐视频教程
视频教程分类
- php视频教程
- html视频教程
- css视频教程
- JS视频教程