在pycharm中python自动化脚本使用paramiko登录设备巡检交换机的cup利用率和内存使用情况,输出巡检结果
时间: 2024-09-28 11:11:43 浏览: 12
在PyCharm中编写Python自动化脚本,使用Paramiko库可以远程登录网络设备如交换机,并通过SSH协议获取其CPU利用率和内存使用情况。以下是一个简化的示例步骤:
首先,需要安装`paramiko`库,如果还没有安装,可以在命令行输入`pip install paramiko`。
```python
import paramiko
import time
# 定义主机、用户名、密码等信息
hostname = 'your_device_ip'
username = 'your_username'
password = 'your_password'
# 创建SSH客户端
ssh_client = paramiko.SSHClient()
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接交换机
try:
ssh_client.connect(hostname=hostname, username=username, password=password)
except paramiko.AuthenticationException as e:
print(f"Authentication failed: {e}")
exit(1)
except paramiko.SSHException as e:
print(f"Connection error: {e}")
exit(1)
def check_resource_usage():
# 执行命令获取资源使用情况(假设`top -bn1 | grep "Cpu(s)" | awk '{print $2/$4 * 100.0}'`展示CPU利用率)
cpu_usage_command = "top -bn1 | grep 'Cpu(s)' | awk '{print $2/$4 * 100.0}'"
stdin, stdout, stderr = ssh_client.exec_command(cpu_usage_command)
cpu_output = stdout.read().decode('utf-8').strip()
# 类似地,获取内存使用情况(假设`free -m | grep Mem | awk '{printf("%.2f"), $(NF-2)/$(NF)*100.0}'`展示内存使用率)
memory_command = "free -m | grep Mem | awk '{printf(\"%.2f\", $(NF-2)/(NF)*100.0)}'"
memstdin, memstdout, memstderr = ssh_client.exec_command(memory_command)
mem_output = memstdout.read().decode('utf-8').strip()
print(f"CPU利用率: {cpu_output}%")
print(f"内存使用率: {mem_output}%")
return cpu_output, mem_output
# 循环检查并记录资源使用情况
while True:
cpu_usage, memory_usage = check_resource_usage()
print("巡检时间:", time.strftime("%Y-%m-%d %H:%M:%S"))
print("---------------------------------------------------------------")
# 可能的操作:将数据保存到日志文件或数据库,然后休息一段时间再继续检查
with open('device_inspection_log.txt', 'a') as log_file:
log_file.write(f"检查时间: {time.strftime('%Y-%m-%d %H:%M:%S')},CPU: {cpu_usage}%, 内存: {memory_usage}%\n")
time.sleep(60) # 检查间隔,例如每分钟一次
# 关闭连接
ssh_client.close()
```
运行这个脚本时,它会定期检查交换机的CPU和内存使用情况,并将结果写入到本地的日志文件中。记得替换`hostname`, `username`, 和 `password` 为实际的设备信息。