53 lines
1.9 KiB
Bash
53 lines
1.9 KiB
Bash
#!/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 |