首页 > 编程语言 > 详细

Python之Fabric模块

时间:2017-08-02 13:50:59      阅读:228      评论:0      收藏:0      [点我收藏+]

Fabric是基于Python实现的SSH命令行工具,简化了SSH的应用程序部署及系统管理任务,它提供了系统基础的操作组件,可以实现本地或远程shell命令,包括:命令执行、文件上传、下载及完整执行日志输出等功能。Fabric在Paramiko的基础上做了更高一层的封装,操作起来会更加简单。

命令说明

命令格式:

fab [options] <command>[:arg1,arg2=val2,host=foo,hosts=‘h1;h2‘,...] ...
-l     #显示定义好的任务函数名
-f     #指定fab入口文件,默认入口文件名为fabfile.py
-f     #指定网关(中转)设备,比如堡垒机环境,填写堡垒机IP即可
-H     #指定目标主机,多台主机用‘,’号分隔
-p     #远程账号的密码,fab执行时默认使用root账户
-P     #以异步并行方式运行多主机任务,默认为串行运行
-R     #指定role(角色),以角色名区分不同业务组设备
-t     #设置设备连接超时时间(秒)
-T     #设置远程主机命令执行超时时间(秒)
-w     #当命令执行失败,发出警告,而非默认中止任务。

简单实例

1.查看本地和远程主机的内存使用大小

192.168.100.242是本机,192.168.100.245是远程主机

root@ubuntu:/usr/local/sbin# cat fab1.py
#!/usr/bin/env python
from fabric.api import *
env.hosts = [‘192.168.100.242‘,‘192.168.100.245‘]
env.user = ‘root‘
env.passwords = {‘root@192.168.100.242:22‘:‘root‘,‘root@192.168.100.245:22‘:‘abc123‘}
@runs_once
def local_mem():
    local(‘free -m‘)
def remote_mem():
    run(‘free -m‘)

查看可以执行的命令:

root@ubuntu:/usr/local/sbin# fab -f fab1.py -l
Available commands:

    local_mem
    remote_mem

下面是执行结果:

root@ubuntu:/usr/local/sbin# fab -f fab1.py local_mem
[192.168.100.242] Executing task ‘local_mem‘
[localhost] local: free -m
             total       used       free     shared    buffers     cached
Mem:         48294      35086      13207          4       1775      31047
-/+ buffers/cache:       2263      46031
Swap:            0          0          0

Done.
root@ubuntu:/usr/local/sbin# fab -f fab1.py remote_mem
[localhost] local: free -m
             total       used       free     shared    buffers     cached
Mem:         48294      35087      13206          4       1776      31049
-/+ buffers/cache:       2262      46031
Swap:            0          0          0

Done.
[192.168.100.245] run: free -m
[192.168.100.245] out:              total       used       free     shared    buffers     cached
[192.168.100.245] out: Mem:           984        890         93          0        188        208
[192.168.100.245] out: -/+ buffers/cache:        493        490
[192.168.100.245] out: Swap:         3071          0       3071
[192.168.100.245] out:


Done.

本文出自 “小屁孩儿” 博客,谢绝转载!

Python之Fabric模块

原文:http://865516915.blog.51cto.com/9037379/1952964

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!