日常工作中经常需要通过SSH连接到多台远程服务器来完成各种任务,当需要操作的服务器众多,且要执行的任务涉及命令繁多时,如果可以以自动化的方式模拟SSH连接及执行命令的繁琐过程,对工作效率的提升是非常可观的。
本文来学习在Python中使用非常强大的fabric库来对常用的远程服务器连接管理操作进行自动化
一、使用fabric玩转远程服务器管理
fabric基于强大的paramiko、invoke等库,构建出一整套简单易用的API,使得我们使用简洁的语句就可以应付常见的各种远程服务器操作,使用pip install fabric完成安装,本文演示对应版本为2.6。
1. 连接到远程服务器并执行终端命令
要建立并保持对远程服务器的连接,我们需要对fabric.Connection()进行实例化,其基础参数有:
- 「host:」 str型,格式如'用户名@host:端口',其中':端口'部分可以省略,默认端口为22
- 「connect_kwargs:」 dict型,用于传入其他连接所需参数
- 「password:」 str型,当以密码方式连接时,用于传入与host参数对应的密码
- 「pkey:」 str型,当以私钥方式连接时,用于设置对应密钥
- 「timeout:」 float型,用