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