Sobes.tech
Junior

Quais linguagens de programação você usa para automatizar tarefas rotineiras no seu trabalho?

sobes.tech IA

Resposta da IA

Python. A flexibilidade, as bibliotecas ricas (os, subprocess, requests, paramiko) e uma comunidade ampla tornam-no uma excelente escolha para scripts de automação de implantação, monitorização e gestão de infraestrutura.

Bash. Necessário para escrever scripts de shell, automatizar tarefas de linha de comando, trabalhar com ficheiros e diretórios, bem como integrar várias ferramentas em pipelines de CI/CD.

Go. Uso-o para escrever ferramentas de automação mais eficientes e complexas, microserviços e utilitários, onde a velocidade de execução e o paralelismo são importantes.

Às vezes uso Ruby ou Perl para trabalhar com sistemas legados ou scripts escritos anteriormente.

Exemplo de automação em Python:

import subprocess
import os

def deploy_app(server_ip, app_path):
  """
  Faz o deploy de uma aplicação num servidor remoto.
  """
  try:
    # Exemplo de comando para scp e 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"Aplicação {app_path} foi implantada com sucesso em {server_ip}")
  except subprocess.CalledProcessError as e:
    print(f"Erro ao fazer deploy: {e}")

# Exemplo de chamada da função
# deploy_app("192.168.1.10", "/path/to/my_app.tar.gz")

Exemplo de automação em Bash:

#!/bin/bash

# Limpeza automática de logs antigos
LOG_DIR="/var/log/myapp"
FIND_CMD="find ${LOG_DIR} -type f -mtime +7 -name '*.log'"

# Eliminar logs com mais de 7 dias
eval "${FIND_CMD} -delete" || { echo "Erro ao eliminar logs"; exit 1; }

echo "Logs antigos eliminados."