Sobes.tech
Junior
98
questionbank

Какими языками программирования вы используете для автоматизации рутинных задач в своей работе?

Ответ от нейросети

sobes.tech AI

Python. Гибкость, богатые библиотеки (os, subprocess, requests, paramiko) и широкое сообщество делают его отличным выбором для сценариев автоматизации развертывания, мониторинга и управления инфраструктурой.

Bash. Необходим для написания скриптов оболочки, автоматизации задач командной строки, работы с файлами и каталогами, а также интеграции различных инструментов в конвейеры CI/CD.

Go. Использую для написания более производительных и сложных инструментов автоматизации, микросервисов и утилит, где важна скорость выполнения и параллелизм.

Иногда использую 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_DIR="/var/log/myapp"
FIND_CMD="find ${LOG_DIR} -type f -mtime +7 -name '*.log'"

# Удалить логи старше 7 дней
eval "${FIND_CMD} -delete" || { echo "Ошибка при удалении логов"; exit 1; }

echo "Старые логи очищены."