Sobes.tech
Junior

Ποια προγραμματιστικά γλώσσες χρησιμοποιείτε για την αυτοματοποίηση επαναλαμβανόμενων εργασιών στην εργασία σας;

sobes.tech AI

Απάντηση από AI

Python. Ευελιξία, πλούσιες βιβλιοθήκες (os, subprocess, requests, paramiko) και μεγάλη κοινότητα το καθιστούν εξαιρετική επιλογή για σενάρια αυτοματοποίησης ανάπτυξης, παρακολούθησης και διαχείρισης υποδομής.

Bash. Απαραίτητο για τη συγγραφή σεναρίων κελύφους, την αυτοματοποίηση εργασιών γραμμής εντολών, την εργασία με αρχεία και καταλόγους, καθώς και την ενσωμάτωση διαφόρων εργαλείων σε pipelines CI/CD.

Go. Το χρησιμοποιώ για τη συγγραφή πιο αποδοτικών και πολύπλοκων εργαλείων αυτοματοποίησης, μικροϋπηρεσιών και βοηθητικών προγραμμάτων, όπου η ταχύτητα εκτέλεσης και ο παραλληλισμός είναι σημαντικά.

Μερικές φορές χρησιμοποιώ Ruby ή Perl για εργασία με legacy συστήματα ή scripts που έχουν γραφτεί προηγουμένως.

Παράδειγμα αυτοματοποίησης σε Python:

import subprocess
import os

def deploy_app(server_ip, app_path):
  """
  Αναπτύσσει μια εφαρμογή σε απομακρυσμένο διακομιστή.
  """
  try:
    # Παράδειγμα εντολών scp και 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"Η εφαρμογή {app_path} αναπτύχθηκε με επιτυχία στο {server_ip}")
  except subprocess.CalledProcessError as e:
    print(f"Σφάλμα κατά την ανάπτυξη: {e}")

# Παράδειγμα κλήσης της συνάρτησης
# deploy_app("192.168.1.10", "/path/to/my_app.tar.gz")

Παράδειγμα αυτοματοποίησης σε Bash:

#!/bin/bash

# Αυτόματη διαγραφή παλιών logs
LOG_DIR="/var/log/myapp"
FIND_CMD="find ${LOG_DIR} -type f -mtime +7 -name '*.log'"

# Διαγραφή logs μεγαλύτερων των 7 ημερών
eval "${FIND_CMD} -delete" || { echo "Σφάλμα κατά τη διαγραφή logs"; exit 1; }

echo "Τα παλιά logs διαγράφηκαν."