Сделать бэкап - это только половина дела. Вторая - убедиться, что он рабочий. Повреждённый архив может стать критичной точкой отказа, особенно при аварийном восстановлении. Попробуем автоматизировать проверку и реагирование.
🌟 Что проверяем? Если вы делаете архивы в .tar.gz, .zip, .xz и т.п., то можно автоматически:
Проверить, читается ли архив
Отправить уведомление при ошибке
Пересоздать архив, если он битый
📱 Пример скрипта:
#!/bin/bash
BACKUP_DIR="/mnt/backups"
LOGFILE="/var/log/backup-check.log"
RETRY_SCRIPT="/usr/local/bin/backup.sh" # ваш основной бэкап-скрипт
check_tar() {
tar -tzf "$1" > /dev/null 2>&1
}
for file in "$BACKUP_DIR"/*.tar.gz; do
if [[ -f "$file" ]]; then
echo -n "Проверка $file... " >> "$LOGFILE"
if check_tar "$file"; then
echo "OK" >> "$LOGFILE"
else
echo "FAILED" >> "$LOGFILE"
echo "[$(date)] Архив повреждён: $file. Перезапуск бэкапа..." >> "$LOGFILE"
# Удалить битый архив
rm -f "$file"
# Перезапуск создания бэкапа
bash "$RETRY_SCRIPT" >> "$LOGFILE" 2>&1
fi
fi
done
⭐️ Дополнительно:
1. Для .zip: unzip -t архив.zip
2. Для .xz: xz -t архив.xz
3. Можно хранить хэши (sha256sum) при создании и сверять перед восстановлением
4. Интеграция с cron — ежедневная проверка по расписанию
❗️ Уведомления: Интеграция с TG или Email - чтобы вы знали, что пошло не так:
curl -s -X POST https://api.telegram.org/bot$TOKEN/sendMessage \
-d chat_id=$CHAT_ID -d text="Архив повреждён: $file. Запущен новый бэкап."
BashTex 📱 #bash