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
osystemd
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: