Sobes.tech
Junior

Ի՞նչ ծրագրավորման լեզուներ եք օգտագործում ձեր աշխատանքի ռուտինային առաջադրանքները ավտոմատացնելու համար։

sobes.tech AI

Պատասխան AI-ից

Python. Լկտիմություն, հարուստ գրադարաններ (os, subprocess, requests, paramiko) և լայն հանրություն այն դարձնում է գերազանց ընտրություն ավտոմատացման սցենարների համար, որոնք վերաբերում են տեղակայմանը, մոնիտորինգին և ենթակառուցվածքի կառավարմանը:

Bash. Անհրաժեշտ է շել սցենարներ գրելու, հրամանի տողային առաջադրանքների ավտոմատացման, ֆայլերով և დირექტորիաներով աշխատելու և տարբեր գործիքների ինտեգրման համար CI/CD շղթաներում:

Go. Ես օգտագործում եմ այն ավելի արդյունավետ և բարդ ավտոմատացման գործիքներ, միկրոսերվիսներ և Utilities գրելու համար, որտեղ կարևոր է արագությունը և պառալելիզմը:

Երբեմն օգտագործում եմ Ruby կամ Perl՝ աշխատելու համար legacy համակարգերի կամ նախապես գրված սցենարների հետ:

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

# Ավտոմատ հին log-ների մաքառում
LOG_DIR="/var/log/myapp"
FIND_CMD="find ${LOG_DIR} -type f -mtime +7 -name '*.log'"

# 7 օրից ավելի հին log-ների հեռացում
eval "${FIND_CMD} -delete" || { echo "Սխալ log-ների հեռացման ժամանակ"; exit 1; }

echo "Հին log-ները հեռացվեցին։"