python 登录远程linux并执行本地多个包含调用关系的shell脚本
时间: 2024-01-27 14:05:50 浏览: 136
要在 Python 中登录远程 Linux 并执行本地多个包含调用关系的 shell 脚本,可以使用 `paramiko` 模块来实现。以下是一个简单的示例代码:
```python
import paramiko
# 连接远程服务器
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname='your_host', port=22, username='your_username', password='your_password')
# 执行 shell 脚本
stdin, stdout, stderr = ssh.exec_command('bash -s' < ./test1.sh')
print(stdout.readlines())
stdin, stdout, stderr = ssh.exec_command('bash -s' < ./test2.sh')
print(stdout.readlines())
# 关闭连接
ssh.close()
```
在这个例子中,我们首先使用 `paramiko` 模块连接到远程服务器。然后,我们使用 `exec_command()` 方法执行多个 shell 命令,其中包括 `./test1.sh` 和 `./test2.sh`。最后,我们打印出命令执行的结果,并关闭连接。
需要注意的是,要使用 `exec_command()` 方法在远程服务器上执行命令,必须在命令字符串前面添加 `bash -s`。这是因为 `exec_command()` 方法默认执行的是非交互式 shell,而这个参数可以让我们强制使用交互式 shell,从而能够执行一些需要交互的命令,如 shell 脚本的执行。另外,如果多个 shell 脚本之间有调用关系,需要按照调用关系依次执行,以确保整个过程顺利完成。
阅读全文