0

Bash скрипт для бэкапа базы 1С в PostgreSQL на Linux

Bash скрипт для бэкапа базы 1С в PostgreSQL на Linux

Для создания резервной копии базы 1С в PostgreSQL удобно использовать скрипты (bash)

Один из таких вы можете скачать бесплатно  (ссылка на него будет в конце статьи).

Если предположить что скрипт будут использовать, возможно, новички, тогда есть смысл и описать процедуру копирования его на Ubuntu server 22.04 с последующим там запуском и копированием бэкапа обратно на Windows.

Windows на личном ПК пользователя и серверная ось на Linux довольно распространённая практика. Поэтому ее в статье мы и возьмем за основу.

02-05-2023 15-15-17

Для создания скрипта бэкапа базы в PostgreSQL можно использовать утилиту pg_dump, которая позволяет выгрузить содержимое базы данных в файл.

И так сперва рассмотрим сам скрипт для бэкапа базы 1С Предприятия:

#!/bin/bash
# Настройки базы данных
DB_NAME=bux_3_0
DB_HOST=192.168.1.35
DB_PORT=5432
DB_USER=postgres
DB_PASS=postgres

# Настройки бэкапа
BACKUP_DIR=/tmp
DATE=$(date +%Y%m%d-%H%M%S)
BACKUP_FILE=$BACKUP_DIR/$DB_NAME-$DATE.dump

# Создание директории для бэкапа, если она не существует
if [ ! -d $BACKUP_DIR ]; then
  mkdir -p $BACKUP_DIR
fi

# Создание бэкапа базы данных
pg_dump --format=custom --dbname=postgresql://$DB_USER:$DB_PASS@$DB_HOST:$DB_PORT/$DB_NAME --file=$BACKUP_FILE

# Удаление старых бэкапов (оставляем только последние 7 дней)
find $BACKUP_DIR -name "$DB_NAME-*.dump" -mtime +7 -delete

В данном скрипте мы задаем параметры подключения к базе 1С  (имя, хост, порт, имя пользователя, пароль) и настройки для бэкапа (директория, куда сохранять бэкапы, имя файла и т.д.).

Далее, мы проверяем, существует ли директория для бэкапов, и если ее нет, то создаем новую. Затем вызываем команду pg_dump с параметрами для создания бэкапа в формате custom (бинарный формат, позволяющий восстанавливать базу данных быстрее, чем текстовый формат).

В конце скрипта удаляем старые бэкапы, которые были созданы более 7 дней назад (чтобы не заполнять директорию бесконтрольно).

Скрипт можно запускать вручную или автоматически через CRON, например, ежедневно в определенное время.

И так скачиваем скрипт по этой ссылке >>>

Вам остаётся только подставить свои значения: IP, база, пользователь, путь к каталогу, где создать бэкап.

Сам bash уже в Unix формате, так что Вам осталось лишь его скопировать в нужный каталог на удаленный сервер, где потом мы его и будем запускать.

Для примера, мы используем временный каталог на Linux Ubuntu  /tmp (Вы в реальной работе в «проде» должны использовать любой другой каталог, не временный).

Шаг 1. Вызываем cmd и копируем скрипт с Windows на Linux по scp:

scp D:\backup.bash bogdankuhar@192.168.1.35:/tmp

Шаг 2. Подключаемся по SSH к удаленному серверу и переходим в каталог, куда скопировали скрипт в tmp:

ssh bogdankuhar@192.168.1.35cd /tmp

Шаг 3.  Делаем скрипт исполняемым, командой:

sudo chmod +x backup.bash

Шаг 4. Запускаем создание бэкапа:

sudo ./backup.bash

Шаг 5. Копируем бэкап на Windows (Если надо).

scp bogdankuhar@192.168.1.35:/tmp/bux_3_0-20230502-111726.dump D:/backup/bux_3_0-20230502-111726.dump

Готово!

Можете добавить в CRON задание которое будет запускать этот скрипт по расписанию!

Cкрипт можно скачать по этой ссылке >>>

Восстановить базу из этого бэкапа, вы можете также просто и быстро вот этим скриптом >>>

Добавить комментарий

Облачная платформа

Свежие комментарии

Подписка

Лучшие статьи

WordPress › Ошибка

На сайте возникла критическая ошибка.

Узнайте больше про решение проблем с WordPress.