🧨 Бэкап базы Zabbix: как делал я (не повторяйте это вслепую) Пару лет назад, накануне новогодних каникул, я внезапно осознал: ❗️ У меня нет ни одного бэкапа базы Zabbix. Ситуация "горит" — сделал на скорую руку вот такую реализацию: 📅 cron-задача (раз в неделю в 2:10): 10 2 * * 0 /var/backup_database.sh >> /var/log/backup.log 2>&1 📝 Содержимое /var/backup_database.sh: #!/bin/bash # Конфигурация DB_NAME="z" DB_USER="z" DB_PASS="M" BACKUP_DIR="/home/user/backup/zabbix/sql" DATE=$(date +"%Y-%m-%d_%H-%M-%S") DB_BACKUP_FILE="$BACKUP_DIR/zabbix_db_backup_$DATE.sql.gz" mkdir -p "$BACKUP_DIR" echo "=== Бэкап базы данных Zabbix ===" mysqldump -u "$DB_USER" -p"$DB_PASS" --single-transaction --quick --routines --triggers --databases "$DB_NAME" | pv | gzip > "$DB_BACKUP_FILE" if [ $? -eq 0 ]; then echo "✅ Бэкап успешно создан: $DB_BACKUP_FILE" else echo "❌ Ошибка при создании бэкапа!" exit 1 fi echo "=== Удаление старых бэкапов ===" find "$BACKUP_DIR" -type f -name "*.gz" -mtime +7 -exec rm {} \; echo "Скрипт завершён успешно." 🔍 Быстрый разбор скрипта mkdir -p "$BACKUP_DIR" Создаёт папку для бэкапов, если не существует. mysqldump ... | pv | gzip > файл Дамп базы + сжатие через gzip, прогресс показывает pv. if [ $? -eq 0 ]; then ... Проверка: если дамп прошёл — ок, иначе ошибка. find ... -mtime +7 -exec rm Удаляет бэкапы старше 7 дней. 🎯 Если у вас есть опыт реализации "по уму" — кидайте идеи в комменты. 🧩 P.S. У меня есть второй скрипт — этот бэкап заливает на FTP. Могу выложить, если будет интересно. 📡 Оперативные обновления — в Telegram (@netscripor). Там контент выходит раньше, иногда — с доп. деталями.
1 месяц назад