mirror of
https://gitverse.ru/kpa39l/xmpp-server-prosody.git
synced 2026-09-29 09:45:02 +00:00
Initial commit: Hermes skill xmpp-server-prosody
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
#!/bin/bash
|
||||
# Шаблон резервного копирования Docker-проекта на Яндекс.Диск.
|
||||
# Является копией рабочего /opt/icq/backup.sh (по образцу /opt/netbox/backup.sh).
|
||||
# Подходит для любого self-hosted проекта: data/ (тома бд/данных) + config + .env + доки.
|
||||
# ЗАМЕНИТЕ: PROJECT_DIR, INCLUDE, YADISK_TARGET, имена файлов.
|
||||
|
||||
PROJECT_DIR="/opt/PROJECT" # корень проекта
|
||||
BACKUP_DIR="${PROJECT_DIR}/backups"
|
||||
YADISK_MOUNT="/mnt/yandex-disk"
|
||||
YADISK_TARGET="${YADISK_MOUNT}/backup/PROJECT-backups"
|
||||
DATE=$(date +%Y%m%d_%H%M%S)
|
||||
|
||||
# Папки/файлы проекта из $PROJECT_DIR, которые попадают в архив.
|
||||
INCLUDE="data config certs modules webchat docker-compose.yml .env README.md"
|
||||
PREFIX="project" # префикс имени архива (ротация ищет ${PREFIX}_*)
|
||||
|
||||
mkdir -p ${BACKUP_DIR}
|
||||
echo "🔄 [$(date)] Начинаем резервное копирование ${PROJECT_DIR}..."
|
||||
|
||||
# Яндекс.Диск должен быть примонтирован (обычно @reboot через davfs)
|
||||
if ! mountpoint -q ${YADISK_MOUNT}; then
|
||||
echo " ❌ ОШИБКА: Яндекс.Диск не примонтирован!"
|
||||
exit 1
|
||||
fi
|
||||
mkdir -p ${YADISK_TARGET} 2>/dev/null
|
||||
|
||||
ARCHIVE="${BACKUP_DIR}/${PREFIX}_${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
|
||||
|
||||
# Ротация: локально 7 дней, на ЯД 30 дней
|
||||
find ${BACKUP_DIR} -type f -name "${PREFIX}_*" -mtime +7 -delete 2>/dev/null
|
||||
find ${YADISK_TARGET} -type f -name "${PREFIX}_*" -mtime +30 -delete 2>/dev/null
|
||||
|
||||
echo "✅ [$(date)] Резервное копирование завершено!"
|
||||
echo ""
|
||||
echo "📊 Созданные бэкапы:"
|
||||
ls -lh ${BACKUP_DIR}/${PREFIX}_${DATE}.* 2>/dev/null || echo " (нет файлов)"
|
||||
Reference in New Issue
Block a user