mirror of
https://gitverse.ru/kpa39l/vesti.git
synced 2026-09-29 18:05:03 +00:00
53 lines
2.3 KiB
Bash
Executable File
53 lines
2.3 KiB
Bash
Executable File
#!/bin/bash
|
|
# Скрипт резервного копирования VESTI (краулер, веб, publisher, медиа, БД, доки) с отправкой на Яндекс.Диск
|
|
# По образцу /opt/icq/backup.sh (и /opt/netbox/backup.sh)
|
|
|
|
PROJECT_DIR="/opt/vesti"
|
|
BACKUP_DIR="${PROJECT_DIR}/backups"
|
|
YADISK_MOUNT="/mnt/yandex-disk"
|
|
YADISK_TARGET="${YADISK_MOUNT}/backup/vesti-backups"
|
|
DATE=$(date +%Y%m%d_%H%M%S)
|
|
|
|
# Папки/файлы проекта, которые бэкапим (из /opt/vesti)
|
|
INCLUDE="db media bundles sources crawler classifier web services publisher scripts openspec .env docker-compose.yml README.md STATUS.md PRD.md TODO.md WALKTHROUGH.md AGENT.MD"
|
|
|
|
mkdir -p ${BACKUP_DIR}
|
|
|
|
echo "🔄 [$(date)] Начинаем резервное копирование VESTI..."
|
|
|
|
# Проверяем, примонтирован ли Яндекс.Диск
|
|
if ! mountpoint -q ${YADISK_MOUNT}; then
|
|
echo " ❌ ОШИБКА: Яндекс.Диск не примонтирован!"
|
|
exit 1
|
|
fi
|
|
|
|
# Создаём папку для бэкапов на Яндекс.Диске (если её нет)
|
|
mkdir -p ${YADISK_TARGET} 2>/dev/null
|
|
|
|
# 1. Бэкап проекта одним архивом
|
|
ARCHIVE="${BACKUP_DIR}/vesti_${DATE}.tar.gz"
|
|
echo " → Архив проекта..."
|
|
tar czf ${ARCHIVE} -C ${PROJECT_DIR} ${INCLUDE} 2>/dev/null
|
|
|
|
if [ -s "${ARCHIVE}" ]; then
|
|
echo " ✅ Архив: $(du -h ${ARCHIVE} | cut -f1)"
|
|
echo " ☁️ Копирование на Яндекс.Диск..."
|
|
cp ${ARCHIVE} ${YADISK_TARGET}/
|
|
echo " ✅ скопирован на ЯД (${YADISK_TARGET}/)"
|
|
else
|
|
echo " ❌ Ошибка создания архива!"
|
|
fi
|
|
|
|
# 2. Очистка старых бэкапов
|
|
# Локально: оставляем 7 дней
|
|
find ${BACKUP_DIR} -type f -name "vesti_*" -mtime +7 -delete 2>/dev/null
|
|
|
|
# На Яндекс.Диске: оставляем 30 дней
|
|
find ${YADISK_TARGET} -type f -name "vesti_*" -mtime +30 -delete 2>/dev/null
|
|
|
|
echo "✅ [$(date)] Резервное копирование завершено!"
|
|
|
|
# Показываем список созданных бэкапов
|
|
echo ""
|
|
echo "📊 Созданные бэкапы:"
|
|
ls -lh ${BACKUP_DIR}/vesti_${DATE}.* 2>/dev/null || echo " (нет файлов)" |