Писал ли скрипты на Bash?

«Писал ли скрипты на Bash?» — вопрос из категории Скриптинг и автоматизация, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, постоянно пишу и поддерживаю Bash-скрипты для автоматизации инфраструктурных задач. Например, для автоматического развертывания конфигураций, очистки логов, мониторинга состояния сервисов и управления резервными копиями.

Вот пример скрипта для инкрементного бэкапа с проверкой и логированием:

#!/bin/bash
set -euo pipefail

BACKUP_SRC="/opt/app/data"
BACKUP_DST="/mnt/backup"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
LOG_FILE="/var/log/backup_${TIMESTAMP}.log"

{
    echo "Starting backup at $(date)"
    if [[ ! -d "$BACKUP_SRC" ]]; then
        echo "ERROR: Source directory $BACKUP_SRC does not exist" >&2
        exit 1
    fi

    rsync -avz --delete "$BACKUP_SRC/" "$BACKUP_DST/latest/"
    cp -al "$BACKUP_DST/latest" "$BACKUP_DST/$TIMESTAMP"

    # Удаляем бэкапы старше 30 дней
    find "$BACKUP_DST" -maxdepth 1 -type d -name '2*' -mtime +30 -exec rm -rf {} +

    echo "Backup completed successfully at $(date)"
} 2>&1 | tee "$LOG_FILE"

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