Какими командами делал бэкап
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Развернутый ответ про команды для бэкапа в DevOps-практике
В моей практике как DevOps Engineer я использовал широкий спектр команд и инструментов для резервного копирования, начиная от базовых системных утилит до специализированных облачных сервисов. Подход к бэкапу всегда зависит от контекста: что именно бэкапируем (файлы, БД, конфигурации, целые системы), какие требования к RPO (Recovery Point Objective) и RTO (Recovery Time Objective), и где храним данные.
Базовые утилиты командной строки
Для файловых бэкапов на уровне ОС я часто использую классические утилиты:
tar - основная рабочая лошадка для создания архивов:
# Создание сжатого архива с исключением временных файлов
tar -czpf backup_$(date +%Y%m%d_%H%M%S).tar.gz \
--exclude='*/tmp/*' \
--exclude='*/cache/*' \
/path/to/backup
rsync - для инкрементальных копий с дельта-передачей:
# Инкрементальный бэкап с сохранением прав и ссылок
rsync -avz --delete \
--link-dest=/backups/previous \
/source/data/ \
/backups/current/
dd - для бэкапа на блочном уровне (например, целых дисков или разделов):
# Создание образа раздела
dd if=/dev/sda1 of=/backup/sda1.img bs=4M status=progress
Работа с базами данных
Для СУБД используются специфичные утилиты экспорта:
PostgreSQL (pg_dump/pg_dumpall):
# Логический бэкап одной БД с форматированием custom (поддерживает сжатие)
pg_dump -Fc -Z 9 -U postgres mydatabase > backup_$(date +%F).dump
# Полный бэкап всех БД кластера
pg_dumpall -U postgres --clean | gzip > full_backup_$(date +%F).sql.gz
MySQL/MariaDB (mysqldump):
# Бэкап всех баз одним файлом
mysqldump --all-databases --single-transaction --routines \
--events --triggers | gzip > full_mysql_backup.sql.gz
MongoDB (mongodump):
# Бэкап конкретной БД с аутентификацией
mongodump --host localhost --port 27017 \
--db mydatabase --out /backup/mongodb/ \
--authenticationDatabase admin -u admin -p
Современные инструменты и подходы
В современных облачных средах я активно использую:
-
Объектное хранилище (S3-совместимое):
# Загрузка в AWS S3 через AWS CLI aws s3 sync /local/backup/ s3://my-backup-bucket/$(date +%Y/%m/%d)/ # Загрузка с настройкой lifecycle и классами хранения aws s3 cp backup.tar.gz s3://backup-bucket/ \ --storage-class GLACIER_IR \ --metadata "BackupDate=$(date -Iseconds)" -
Снимки (snapshots) дисков в облаке:
# Создание снапшота диска в GCP gcloud compute disks snapshot disk-name \ --snapshot-names="disk-name-$(date +%s)" \ --zone=europe-west1-b \ --storage-location=eu -
Специализированные утилиты:
-
borgbackup- дедуплицирующий бэкап с шифрованием:# Создание дедуплицированного зашифрованного архива borg create --stats --progress \ /backup/repo::"server-{now:%Y-%m-%d_%H:%M}" \ /etc /home /var/www -
restic- современная кроссплатформенная утилита:# Инициализация репозитория и бэкап restic -r s3:s3.amazonaws.com/bucketname init restic -r s3:s3.amazonaws.com/bucketname backup /data
-
Автоматизация в CI/CD и оркестрации
В инфраструктуре как код и пайплайнах:
# Пример в Ansible для настройки регулярных бэкапов
- name: Configure backup cron job
cron:
name: "Daily database backup"
minute: "0"
hour: "2"
job: "/opt/scripts/backup-db.sh && /opt/scripts/upload-to-s3.sh"
# Скрипт для Kubernetes (бэкап PVC через снапшоты)
velero backup create daily-backup \
--include-namespaces production \
--snapshot-volumes \
--ttl 720h
Ключевые принципы в моей практике
- Правило 3-2-1: минимум 3 копии, на 2 разных носителях, 1 вне площадки
- Верификация: всегда проверяю целостность бэкапов командой
restic checkили аналогичной - Автоматизация: все регулярные бэкапы через cron, systemd timers или оркестраторы
- Мониторинг: алерты на failed бэкапы в Prometheus/Grafana
- Документация восстановления: наличие и регулярное тестирование runbooks
В современных облачных средах все чаще используются managed-сервисы вроде AWS Backup, Azure Backup или специализированные решения типа Veeam, но понимание работы низкоуровневых команд остается критически важным для диагностики проблем и построения гибких решений под специфичные требования бизнеса.