Conceptos Esenciales de Sysadmin
Archivos, permisos, procesos y servicios en servidores Linux que ejecutan APIs, workers y trabajos cron de Python: los comandos que los operadores usan antes de abrir un depurador de Python.
Busca en todas las páginas de la documentación
Archivos, permisos, procesos y servicios en servidores Linux que ejecutan APIs, workers y trabajos cron de Python: los comandos que los operadores usan antes de abrir un depurador de Python.
ls -la /var/log/myapp/
sudo systemctl status billing-api
sudo journalctl -u billing-api -n 100 --no-pager
df -h && du -sh /var/lib/myapp/*Cuándo usar esto:
# Nuevo directorio de despliegue propiedad del usuario del servicio
sudo mkdir -p /var/lib/billing-api/uploads
sudo chown billing:billing /var/lib/billing-api/uploads
sudo chmod 750 /var/lib/billing-api/uploads
# Comprobar la unidad y los logs recientes
sudo systemctl daemon-reload
sudo systemctl restart billing-api
sudo systemctl is-active billing-api
sudo journalctl -u billing-api -fLo que esto demuestra:
systemctl después de un cambio en el archivo de unidad-f en journal para triaje en vivoExecStart, entorno, política de reinicio.| Problema | Comandos |
|---|---|
| Permisos | ls -la, namei -l path, chmod, chown |
| Disco | df -h, du -xh --max-depth=1 |
| Servicio | systemctl status, restart, enable |
| Logs | journalctl -u, tail de /var/log/ |
# Encontrar qué proceso está usando el puerto 8000
sudo ss -tlnp | grep 8000
# Confirmar la ruta de python del venv en la unidad systemd
systemctl cat billing-api | grep ExecStart750 y grupo de la aplicación./etc/systemd/system/ con un comentario de versión.df muestra espacio pero las escrituras fallan. Solución: df -i.logrotate + límites de tamaño de journal.ausearch / aa-status.| Alternativa | Usar Cuando | No Usar Cuando |
|---|---|---|
| Docker logs | Servicios Python contenerizados | VMs systemd en metal desnudo |
| Kubernetes kubectl | Despliegues en K8s | Staging en VM única |
| Ansible playbooks | Configuración repetible de servidores | Depuración SSH puntual |
| Gestor de sesiones SSH en la nube | Sin claves SSH de bastión | On-premise aislado |
systemd en VMs Linux modernas; supervisord en contenedores heredados sin systemd.
/etc/billing-api/env modo 600 propiedad root:billing con EnvironmentFile= en la unidad - no legible por todos.
Recargar si la aplicación soporta HUP; las APIs de Python generalmente necesitan reiniciar después de un despliegue de código.
La unidad de servicio puede establecer UMask=0027 para que los nuevos archivos no sean escribibles por grupo/todos.
tmpfs dimensionado evita el llenado del disco pero los datos se pierden al reiniciar - usar solo para scratch efímero.
timedatectl status - JWT y correlación de logs fallan con reloj incorrecto.
Aumentar LimitNOFILE= en la unidad para FastAPI con muchas conexiones detrás de keep-alive.
Auditoría de seguridad find / -perm -4000 2>/dev/null - no relacionado con Python pero tarea común de sysadmin.
El mapeo de UID/GID debe coincidir entre nodos - preferir almacenamiento de objetos (S3) para subidas.
Montar rutas escribibles explícitamente para logs y tmp - común en contenedores endurecidos.
Versiones de Stack: Esta página fue escrita para Python 3.14.0 (estable 3.14, mantenimiento 3.13), FastAPI 0.115+, Django 5.2, Flask 3.1, Pydantic 2, PyTorch 2.6+, pandas 2.2+, Polars 1.x, ruff 0.9+, y uv 0.6+.
Revisado por Chris St. John·Última actualización: 16 jul 2026