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.
时间: 2024-12-22 19:29:52