¿Qué lenguajes de programación utilizas para automatizar tareas rutinarias en tu trabajo?
sobes.tech AI
Respuesta de la IA
Python. La flexibilidad, las bibliotecas ricas (os, subprocess, requests, paramiko) y una comunidad amplia lo convierten en una excelente opción para scripts de automatización de despliegue, monitoreo y gestión de infraestructura.
Bash. Es necesario para escribir scripts de shell, automatizar tareas de línea de comandos, trabajar con archivos y directorios, así como integrar diversas herramientas en pipelines de CI/CD.
Go. Lo uso para escribir herramientas de automatización más eficientes y complejas, microservicios y utilidades, donde la velocidad de ejecución y el paralelismo son importantes.
A veces uso Ruby o Perl para trabajar con sistemas legados o scripts escritos anteriormente.
Ejemplo de automatización en Python:
import subprocess
import os
def deploy_app(server_ip, app_path):
"""
Despliega la aplicación en un servidor remoto.
"""
try:
# Ejemplo de comando para scp y ssh
subprocess.run(["scp", app_path, f"user@{server_ip}:/opt/app/"], check=True)
subprocess.run(["ssh", f"user@{server_ip}", "sudo systemctl restart myapp"], check=True)
print(f"Aplicación {app_path} desplegada con éxito en {server_ip}")
except subprocess.CalledProcessError as e:
print(f"Error al desplegar: {e}")
# Ejemplo de llamada a la función
# deploy_app("192.168.1.10", "/path/to/my_app.tar.gz")
Ejemplo de automatización en Bash:
#!/bin/bash
# Limpieza automática de logs antiguos
LOG_DIR="/var/log/myapp"
FIND_CMD="find ${LOG_DIR} -type f -mtime +7 -name '*.log'"
# Eliminar logs de hace más de 7 días
eval "${FIND_CMD} -delete" || { echo "Error al eliminar logs"; exit 1; }
echo "Logs antiguos eliminados."