python脚本’”分别从远程登陆1运行a.py脚本抓取lspci|grep -i 'non' | cut -f1 -d ' ' 保存到log.txt,再从远程登录2,运行a.sh脚本保存到log的末尾。“一直循环跑5次并把log都追加到log.txt里面。‘
时间: 2024-02-03 09:13:23 浏览: 113
以下是一个可能的实现:
```python
import paramiko
import time
# 连接远程服务器1
ssh1 = paramiko.SSHClient()
ssh1.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh1.connect(hostname='server1.example.com', username='username', password='password')
# 连接远程服务器2
ssh2 = paramiko.SSHClient()
ssh2.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh2.connect(hostname='server2.example.com', username='username', password='password')
for i in range(5):
# 在远程服务器1运行a.py脚本并抓取输出
stdin, stdout, stderr = ssh1.exec_command('lspci | grep -i \'non\' | cut -f1 -d \' \'')
output1 = stdout.read().decode()
# 在远程服务器2运行a.sh脚本并抓取输出
stdin, stdout, stderr = ssh2.exec_command('cat log >> log.txt')
output2 = stdout.read().decode()
# 将输出写入log.txt文件
with open('log.txt', 'a') as f:
f.write(output1 + output2)
# 等待一段时间后再次执行
time.sleep(60)
```
这个脚本使用了`paramiko`模块来连接远程服务器并执行命令。在循环中,它首先在远程服务器1上运行`lspci | grep -i 'non' | cut -f1 -d ' '`命令,抓取输出并保存到`output1`变量中。然后在远程服务器2上运行`cat log >> log.txt`命令,将`log`文件的内容追加到`log.txt`文件的末尾,并抓取输出保存到`output2`变量中。最后将`output1`和`output2`写入`log.txt`文件中,并等待60秒后再次执行。这个过程会循环执行5次。
阅读全文