Bash скрипт для бэкапа базы 1С в PostgreSQL на Linux
Для создания резервной копии базы 1С в PostgreSQL удобно использовать скрипты (bash)
Один из таких вы можете скачать бесплатно (ссылка на него будет в конце статьи).
Если предположить что скрипт будут использовать, возможно, новички, тогда есть смысл и описать процедуру копирования его на Ubuntu server 22.04 с последующим там запуском и копированием бэкапа обратно на Windows.
Windows на личном ПК пользователя и серверная ось на Linux довольно распространённая практика. Поэтому ее в статье мы и возьмем за основу.

Для создания скрипта бэкапа базы в 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крипт можно скачать по этой ссылке >>>
Восстановить базу из этого бэкапа, вы можете также просто и быстро вот этим скриптом >>>