Sobes.tech
Junior

¿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."