Ответ
Bash-скрипты — это фундаментальный инструмент автоматизации в DevOps для выполнения рутинных операций на Unix-подобных системах (Linux, macOS).
Типичные сценарии использования:
- Автоматизация сборки и деплоя: Запуск сборщиков (Maven, Gradle), копирование артефактов.
- Обработка файлов и логов: Поиск, фильтрация (grep), преобразование (awk, sed), архивация.
- Мониторинг и управление процессами: Проверка статуса служб, перезапуск упавших процессов, сбор метрик.
- Управление инфраструктурой: Взаимодействие с облачными CLI (AWS CLI, gcloud), оркестрация контейнеров (Docker/Podman).
Пример скрипта для сборки и деплоя Java-приложения:
#!/bin/bash
# Strict mode для отлова ошибок
set -euo pipefail
PROJECT_DIR="/opt/myapp"
DEPLOY_DIR="/var/www/app"
echo "Начинаем сборку проекта..."
cd "$PROJECT_DIR"
# Запуск сборки с помощью Maven
mvn clean package -DskipTests
# Поиск и копирование JAR-артефакта
JAR_FILE=$(find target -name "*.jar" -type f | head -n 1)
if [[ -z "$JAR_FILE" ]]; then
echo "Ошибка: JAR-файл не найден!" >&2
exit 1
fi
cp "$JAR_FILE" "$DEPLOY_DIR/app.jar"
echo "Деплой успешно завершён: $DEPLOY_DIR/app.jar"
# Перезапуск системного сервиса
sudo systemctl restart myapp-service
Важные концепции: работа с переменными, аргументами скрипта ($1, $@), условиями (if-else), циклами (for, while), функциями и кодами возврата ($?).