Sobes.tech
Junior

Jakimi językami programowania posługujesz się do automatyzacji rutynowych zadań w swojej pracy?

sobes.tech AI

Odpowiedź od AI

Python. Elastyczność, bogate biblioteki (os, subprocess, requests, paramiko) i szeroka społeczność sprawiają, że jest to doskonały wybór do automatyzacji skryptów wdrożeniowych, monitorowania i zarządzania infrastrukturą.

Bash. Nieodzowny do pisania skryptów powłoki, automatyzacji zadań wiersza poleceń, pracy z plikami i katalogami oraz integracji różnych narzędzi w pipeline'ach CI/CD.

Go. Używam go do pisania wydajniejszych i bardziej złożonych narzędzi automatyzacji, mikroserwisów i utilitów, gdzie ważna jest szybkość wykonania i paralelizm.

Czasami korzystam z Ruby lub Perla do pracy z systemami legacy lub skryptami napisanymi wcześniej.

Przykład automatyzacji w Python:

import subprocess
import os

def deploy_app(server_ip, app_path):
  """
  Wdraża aplikację na zdalny serwer.
  """
  try:
    # Przykład polecenia scp i 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"Aplikacja {app_path} pomyślnie wdrożona na {server_ip}")
  except subprocess.CalledProcessError as e:
    print(f"Błąd podczas wdrażania: {e}")

# Przykład wywołania funkcji
# deploy_app("192.168.1.10", "/path/to/my_app.tar.gz")

Przykład automatyzacji w Bash:

#!/bin/bash

# Automatyczne czyszczenie starych logów
LOG_DIR="/var/log/myapp"
FIND_CMD="find ${LOG_DIR} -type f -mtime +7 -name '*.log'"

# Usuwanie logów starszych niż 7 dni
eval "${FIND_CMD} -delete" || { echo "Błąd przy usuwaniu logów"; exit 1; }

echo "Stare logi usunięte."