1. 程式人生 > >Python之Fabric模塊

Python之Fabric模塊

python之fabric模塊

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是遠程主機

[email protected]:/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 = [email protected]:22‘:‘root‘,[email protected]:22‘:‘abc123‘}
@runs_once
def local_mem():
    local(‘free -m‘)
def remote_mem():
    run(‘free -m‘)

查看可以執行的命令:

[email protected]:/usr/local/sbin# fab -f fab1.py -l
Available commands:

    local_mem
    remote_mem

下面是執行結果:

[email protected]:/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.
[email protected]:/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模塊