前言:
用户需要一份用Python编写的Linux系统巡检脚本,检查内存、磁盘、CPU使用率,还有网络连通性。 首先,我得确定用户的使用场景。可能用户是系统管理员,需要定期监控服务器状态,确保系统正常运行。 或者是开发人员,想自动化巡检流程,减少手动检查的工作量。 接下来,用户提到的具体指标有内存、磁盘、CPU和网络。 我需要考虑如何用Python获取这些信息。 对于Linux系统,通常可以通过读取/proc文件系统或者使用命令行工具来获取这些数据。 比如,内存信息可以从/proc/meminfo读取,磁盘使用情况可以用psutil库或者调用df命令, CPU使用率可以用psutil或者读取/proc/stat,网络连通性可以用ping命令或者socket库。 然后,用户可能希望脚本的输出清晰易读,可能需要格式化输出,比如用表格形式展示结果。 颜色区分不同状态,比如红色表示警告,绿色表示正常,这样用户一眼就能看出问题所在。 还要考虑是否需要参数化,比如允许用户指定检查的磁盘路径或IP地址,但用户没有提到,可能基础版本不需要,但可以预留扩展的可能性。 另外,日志记录功能可能有用,方便后续查看历史巡检结果。 需要处理权限问题,比如某些命令可能需要sudo权限,但用户可能希望脚本在普通用户权限下运行,所以应选择不需要特权的方法。 例如,使用psutil库可以跨平台,并且不需要执行外部命令,更安全可靠。 关于网络检查,用户可能想检测内网关键服务或外网连通性。 比如,默认检查8.8.8.8和百度,但用户可能需要自定义,所以可以设计成可配置的列表。 最后,确保代码兼容Python3,并且添加必要的异常处理,避免脚本因为某个检查项失败而终止。 例如,捕获异常并记录错误信息,继续执行其他检查。
总结下来,脚本需要:
以下是一个基于Python 3的Linux系统巡检脚本,使用psutil库获取系统信息,包含您要求的五大核心指标检测:
#!/usr/bin/env python3
import psutil
import subprocess
import platform
from datetime import datetime
import socket
import sys
# 颜色配置
COLORS = {
\”red\”: \”\\033[91m\”,
\”green\”: \”\\033[92m\”,
\”yellow\”: \”\\033[93m\”,
\”orange\”: \”\\033[38;5;208m\”,
\”end\”: \”\\033[0m\”
}
def check_uptime():
\”\”\”获取系统运行时间和启动时间\”\”\”
boot_time = psutil.boot_time()
now = datetime.now().timestamp()
# 计算运行时间
uptime_seconds = now – boot_time
days, remainder = divmod(uptime_seconds, 86400)
hours, remainder = divmod(remainder, 3600)
minutes, seconds = divmod(remainder, 60)
return {
\”days\”: int(days),
\”hours\”: int(hours),
\”minutes\”: int(minutes),
\”seconds\”: int(seconds),
\”boot_time\”: datetime.fromtimestamp(boot_time).strftime(\”%Y-%m-%d %H:%M:%S\”)
}
def get_host_ip():
\”\”\”获取主机所有IPv4地址(排除回环地址)\”\”\”
interfaces = psutil.net_if_addrs()
ips = []
for name, addrs in interfaces.items():
for addr in addrs:
if addr.family == socket.AF_INET and not addr.address.startswith(\’127.\’):
ips.append({
\”interface\”: name,
\”ip\”: addr.address,
\”netmask\”: addr.netmask
})
return {
\”ips\”: ips}
def check_memory():
\”\”\”检查内存使用率(修改为GB单位)\”\”\”
mem = psutil.virtual_memory()
return {
\”total\”: round(mem.total / (1024**3
评论前必须登录!
注册