Files
Ubuntu_docs/PostgreSQL/backup/backup.sh
2025-06-25 23:00:43 +05:00

53 lines
1.9 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# Конфигурация
DB_NAME="CCALM"
DB_HOST="127.0.0.1"
DB_USER="postgres"
BACKUP_DIR="/opt/backups/data"
TIMESTAMP=$(date +%Y%m%d_%H%M)
BACKUP_FILE="${BACKUP_DIR}/${DB_NAME}_${TIMESTAMP}.backup"
# Проверка существования директории для бэкапов
if [ ! -d "$BACKUP_DIR" ]; then
echo "Ошибка: Директория $BACKUP_DIR не существует. Создаю..."
mkdir -p "$BACKUP_DIR"
if [ $? -ne 0 ]; then
echo "Ошибка: Не удалось создать директорию $BACKUP_DIR"
exit 1
fi
fi
# Установка прав для пользователя webdav
chown rclone:rclone "$BACKUP_DIR"
chmod 755 "$BACKUP_DIR"
# Экспорт пароля (если не используется .pgpass)
# Замените 'your_password' на реальный пароль или настройте .pgpass
export PGPASSWORD='309A86FF65A78FB428F4E38DFE35F730'
# Выполнение pg_dump
echo "Создание резервной копии базы данных $DB_NAME в $BACKUP_FILE..."
pg_dump "$DB_NAME" \
--host="$DB_HOST" \
--username="$DB_USER" \
--format=custom \
--file="$BACKUP_FILE"
# Проверка успешности выполнения
if [ $? -eq 0 ]; then
echo "Резервная копия успешно создана: $BACKUP_FILE"
# Установка прав для пользователя webdav
chown webdav:webdav "$BACKUP_FILE"
chmod 644 "$BACKUP_FILE"
else
echo "Ошибка: Не удалось создать резервную копию"
exit 1
fi
# Очистка старых бэкапов (например, старше 7 дней)
find "$BACKUP_DIR" -name "${DB_NAME}_*.backup" -mtime +7 -delete
echo "Старые бэкапы (старше 7 дней) удалены"
# Перемещаю на другой сервер
rclone move /opt/backups/data mywebdav:/backups --progress --no-check-certificate