Python para Sysadmins: 5 Scripts que Deberías Estar Usando Hoy

5 Scripts de Python para Sysadmins

Introducción

La automatización es esencial para cualquier administrador de sistemas moderno. En este contexto, Python se ha convertido en una de las herramientas más poderosas por su legibilidad, versatilidad y enorme ecosistema. Esta guía presenta 5 scripts útiles y listos para usar que todo sysadmin debería tener a mano, desde monitoreo de recursos hasta análisis de logs.

🔧 Requisitos previos: Python 3.10+, permisos de administrador (para ciertas tareas), y bibliotecas estándar.

1. Monitor de Uso de CPU y Memoria

¿Para qué sirve?

Permite obtener en tiempo real el uso de CPU y memoria RAM del sistema.

Código

import psutil
import time

while True:
print(f"CPU: {psutil.cpu_percent()}%")
print(f"RAM: {psutil.virtual_memory().percent}%\n")
time.sleep(2)

Salida esperada

CPU: 17.3%
RAM: 45.8%

2. Escaneo de Puertos Abiertos en una IP

¿Para qué sirve?

Identifica rápidamente qué puertos están abiertos en un servidor remoto.

Código

import socket

ip = "192.168.1.100"
for port in range(20, 1025):
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.settimeout(0.5)
if s.connect_ex((ip, port)) == 0:
print(f"Puerto abierto: {port}")

Consejo

Limita el rango de puertos o aumenta el timeout si estás escaneando una red externa.

3. Análisis Rápido de Archivos de Log

¿Para qué sirve?

Detecta líneas con errores críticos (ERROR, FAIL, CRITICAL) en archivos como /var/log/syslog.

Código

keywords = ["ERROR", "FAIL", "CRITICAL"]
with open("/var/log/syslog") as f:
for line in f:
if any(kw in line for kw in keywords):
print(line.strip())

4. Envío de Correo con Alerta del Sistema

¿Para qué sirve?

Envía un correo si el uso de CPU supera un umbral crítico.

Código

import smtplib
from email.message import EmailMessage
import psutil

if psutil.cpu_percent() > 80:
msg = EmailMessage()
msg.set_content("¡Alerta! CPU sobrecargado.")
msg["Subject"] = "Alerta de Sistema"
msg["From"] = "admin@tuservidor.com"
msg["To"] = "soporte@empresa.com"

with smtplib.SMTP("smtp.tuservidor.com", 587) as s:
s.starttls()
s.login("admin@tuservidor.com", "tu_clave")
s.send_message(msg)

Tip

Usa servicios como SendGrid o Mailgun en producción para mayor confiabilidad.

5. Listar los Procesos Más Pesados

¿Para qué sirve?

Identifica los procesos que más consumen memoria y CPU en tu sistema.

Código

import psutil

processes = sorted(psutil.process_iter(['pid', 'name', 'cpu_percent', 'memory_percent']),
key=lambda p: p.info['memory_percent'],
reverse=True)

print("Top 5 procesos más pesados:\n")
for p in processes[:5]:
print(f"{p.info['name']} - PID: {p.info['pid']} - CPU: {p.info['cpu_percent']}% - RAM: {p.info['memory_percent']:.2f}%")

Conclusión

Con estos 5 scripts básicos pero potentes, puedes comenzar a integrar Python en tus rutinas de administración de sistemas de manera efectiva. Además de ahorrar tiempo, te permiten generar reportes, actuar ante alertas y mantener un control más fino de tus servidores.

👉 Recomendaciones finales:

  • Usa crontab o systemd para programar scripts de forma automática.
  • Integra estos scripts con dashboards como Grafana vía Prometheus o logs centralizados.
  • Mantén tus scripts versionados con Git.

🔗 Enlaces útiles:

Leave a Reply

Your email address will not be published. Required fields are marked *