一、 该脚本利用shutil.disk_usage函数获取磁盘使用情况,该函数返回一个包含磁盘总空间、已使用空间和剩余空间的命名元组。通过将字节数转换为 GB,并计算使用率,运维人员可以清晰了解磁盘空间状况。若磁盘使用率过高,可能导致系统性能下降或数据存储问题,及时发现并清理不必要的文件,或扩展磁盘空间至关重要。
在服务器集群环境中,随着业务数据的不断增长,磁盘空间可能逐渐被占满。定期运行此脚本,监控磁盘使用情况,如每周一次或每天凌晨进行检查。当发现磁盘使用率接近阈值(如 80%)时,及时通知运维人员,以便采取相应措施,避免因磁盘空间不足影响业务正常运行。
二、此脚本用于清理指定目录下的日志文件。它通过os.walk遍历日志目录,检查每个日志文件的修改时间,计算文件存在的天数。若文件存在天数超过设定的保留天数,脚本将其删除,从而避免日志文件占用过多磁盘空间。
在大型应用系统中,日志文件会随着时间不断累积,占用大量磁盘空间。每月初运行此脚本,设置保留 7 天的日志文件,清理 7 天前的旧日志。这样既能保证在需要时可查阅近期日志进行故障排查,又能有效控制磁盘空间占用,维持系统稳定运行。
三、该脚本借助paramiko库实现 SSH 连接,从而在多台服务器上批量执行命令。paramiko是 Python 的一个 SSH 协议库,支持认证及远程执行命令等功能。通过遍历服务器列表,依次连接每台服务器并执行指定命令,运维人员可一次性对多台服务器进行相同操作,如批量安装软件、更新配置等,极大提高工作效率。
在大规模数据中心,当需要对所有 Web 服务器更新 Nginx 配置文件时,使用此脚本,只需将服务器 IP 地址添加到列表中,设置好用户名、密码及更新配置的命令,即可同时在多台服务器上执行操作,避免了逐一登录服务器进行配置更新的繁琐过程,有效减少操作时间与出错概率。
四、此脚本利用 Python 的socket模块进行端口扫描。socket.connect_ex方法尝试连接指定目标 IP 和端口,根据返回结果判断端口是否开放。设置超时时间为 1 秒,防止因连接超时导致扫描时间过长。通过扫描特定端口,运维人员可了解服务器上哪些服务在运行,及时发现异常开放的端口,增强服务器安全性。
在对新上线的服务器进行安全检查时,运行此脚本扫描常见端口,如 SSH(22 端口)、HTTP(80 端口)、HTTPS(443 端口)等。若发现有未预期开放的端口,可进一步排查是否存在安全风险,如是否有恶意程序开启了非法端口,及时采取措施关闭端口或进行安全加固。
五、这个脚本结合了进程监控与邮件发送功能。首先通过psutil库检查指定服务是否在运行,然后根据服务状态使用smtplib库发送邮件通知相关人员。MIMEText用于构造邮件内容,设置邮件主题、发件人和收件人等信息,通过 SMTP 协议登录邮件服务器并发送邮件
对于企业关键业务服务,如 MySQL 数据库服务。设置定时任务每小时运行此脚本,若 MySQL 服务停止,脚本会立即发送邮件通知运维团队。运维人员可及时响应,快速排查服务停止原因并恢复服务,保障业务系统的持续稳定运行。
以上新增的 Python 运维脚本从批量操作、安全检测到服务状态汇报,为运维工作提供了更全面的自动化支持。通过灵活运用这些脚本,运维人员能够在复杂的运维环境中更高效地管理服务器,提升系统的稳定性与安全性。后续我们还会不断挖掘更多实用的运维脚本,助力运维工作迈向新高度。