📅  最后修改于: 2023-12-03 15:09:13.259000             🧑  作者: Mango
有时候,我们需要在远程机器上执行一些 Shell 命令,比如查看服务器状态、执行一些脚本等等。Python是一个很强大的语言,可以用来实现这个功能。本文将介绍如何使用Python在远程机器上执行Shell命令。
Paramiko是一个Python库,可以实现SSH协议的客户端和服务器端的互联,并可以在远程服务器上执行命令。
你可以使用pip来安装Paramiko库。在命令行中执行以下命令:
pip install paramiko
以下是一个示例代码:
import paramiko
# 创建SSHClient实例
ssh = paramiko.SSHClient()
# 自动添加主机密钥(默认情况下拒绝不在本地known_hosts文件中的主机)
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接远程服务器
ssh.connect(hostname='localhost', port=22, username='ubuntu', password='password')
# 执行命令
stdin, stdout, stderr = ssh.exec_command('ls -l')
print(stdout.read().decode())
# 关闭连接
ssh.close()
以上示例首先创建了一个SSHClient实例,然后连接到远程服务器,并使用exec_command方法执行了命令ls -l。最后,输出了命令的输出结果,并关闭了连接。
Fabric是Python的一个库,用于对SSH连接进行封装,可以将一组命令打包执行,以及追踪并处理异常等。
你可以使用pip来安装Fabric库。在命令行中执行以下命令:
pip install fabric
以下是一个示例代码:
from fabric import Connection
# 连接远程服务器
with Connection('localhost', user='ubuntu', connect_kwargs={'password': 'password'}) as c:
# 执行命令
result = c.run('ls -l', hide=True)
# 输出结果
print(result.stdout)
以上示例使用了Fabric库的Connection类来连接远程服务器,并使用run方法执行了命令ls -l。最后,输出了命令的输出结果。
本文介绍了如何使用Python在远程机器上执行Shell命令。你可以根据自己的需求选择使用Paramiko库还是Fabric库来实现这个功能。