python 编写ssh连接之后依次运行命令
时间: 2023-05-20 10:06:42 浏览: 63
可以使用 paramiko 库来实现 SSH 连接,并依次运行命令。以下是一个示例代码:
```python
import paramiko
# 创建 SSH 客户端
client = paramiko.SSHClient()
# 自动添加主机密钥
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接 SSH 服务器
client.connect('hostname', port=22, username='username', password='password')
# 依次运行命令
stdin, stdout, stderr = client.exec_command('command1')
print(stdout.read().decode())
stdin, stdout, stderr = client.exec_command('command2')
print(stdout.read().decode())
stdin, stdout, stderr = client.exec_command('command3')
print(stdout.read().decode())
# 关闭 SSH 连接
client.close()
```
其中,`hostname`、`username`、`password` 分别为 SSH 服务器的主机名、用户名和密码,`command1`、`command2`、`command3` 分别为需要依次运行的命令。
相关问题
python编写 ssh后print运行ghe-maintenance -q命令的返回
结果,应该如何实现?
你可以使用 paramiko 库来实现 Python 编写 ssh,然后使用 subprocess 库来运行 ghe-maintenance -q 命令并获取返回结果。以下是示例代码:
```python
import paramiko
import subprocess
# SSH 连接参数
ssh_host = 'your_ssh_host'
ssh_port = 22
ssh_username = 'your_ssh_username'
ssh_password = 'your_ssh_password'
# 创建 SSH 客户端
ssh_client = paramiko.SSHClient()
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接 SSH 服务器
ssh_client.connect(hostname=ssh_host, port=ssh_port, username=ssh_username, password=ssh_password)
# 执行 ghe-maintenance -q 命令并获取返回结果
stdin, stdout, stderr = ssh_client.exec_command('ghe-maintenance -q')
result = stdout.read().decode('utf-8')
# 关闭 SSH 连接
ssh_client.close()
# 输出返回结果
print(result)
```
注意,你需要将 `your_ssh_host`、`your_ssh_username` 和 `your_ssh_password` 替换为实际的 SSH 连接参数。
python远程ssh并依次执行多个命令代码
可以使用Python中的paramiko库来实现SSH连接并依次执行多个命令。下面是一个示例代码:
```python
import paramiko
# 创建SSH客户端
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接SSH服务器
ssh.connect(hostname='your_hostname', port=22, username='your_username', password='your_password')
# 要执行的多个命令
commands = ['command1', 'command2', 'command3']
# 依次执行多个命令
for command in commands:
stdin, stdout, stderr = ssh.exec_command(command)
# 输出命令执行结果
print(''.join(stdout.readlines()))
# 关闭SSH连接
ssh.close()
```
在这个示例中,首先创建了一个SSH客户端对象,并连接到了远程SSH服务器。然后定义一个包含多个命令的列表,并使用exec_command()方法依次执行它们。最后输出每个命令的执行结果,并关闭SSH连接。
需要注意的是,这个示例代码并没有处理命令执行出错的情况。如果命令执行出错,stderr的输出将会被忽略,并且程序可能会崩溃。如果需要更加健壮的代码,可以考虑对命令执行结果进行错误处理。