怎么使用paramiko实现定时巡检功能
时间: 2023-11-22 10:55:54 浏览: 62
python利用paramiko实现交换机巡检的示例
5星 · 资源好评率100%
使用paramiko可以通过SSH协议连接到远程设备,执行命令并获取输出。要实现定时巡检功能,可以使用Python内置的sched模块来调度任务。
以下是一个示例代码,实现每隔一段时间连接到远程设备,执行命令并将结果输出到日志文件中:
```python
import paramiko
import sched
import time
# 远程设备信息
hostname = '192.168.1.1'
username = 'admin'
password = 'password'
# 要执行的命令
command = 'show interfaces'
# 日志文件
log_file = 'log.txt'
# 建立SSH连接并执行命令
def run_command():
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname, username=username, password=password)
stdin, stdout, stderr = ssh.exec_command(command)
output = stdout.read().decode('utf-8')
ssh.close()
# 将结果输出到日志文件中
with open(log_file, 'a') as f:
f.write('=====================\n')
f.write(time.strftime('%Y-%m-%d %H:%M:%S') + '\n')
f.write(output)
# 调度任务
def schedule_task():
s = sched.scheduler(time.time, time.sleep)
# 每隔5分钟执行一次
s.enter(300, 1, schedule_task)
run_command()
s.run()
schedule_task()
```
在以上代码中,我们使用了paramiko库建立SSH连接并执行命令,然后将结果输出到日志文件中。使用sched模块定时调度任务,实现定时巡检功能。
阅读全文