Python之Fabric模塊
阿新 • • 發佈:2017-08-02
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模塊