Как не прошляпить архив

26.03.21

База данных - Архивирование (backup)

Контроль изменения списка баз данных для архивирования BASH.

Очень часто в организации сопровождением 1С и администрированием занимаются разные люди. И иногда возникает ситуация, когда программисты добавили базу данных, а администратору сказать забыли. И по этой, уважительной, причине база не попала в архив.

Чтобы минимизировать ущерб предлагаю скрипт контроля списка баз данных. Скрипт может работать как с Postgresql, так и с файловым вариантом. При запуске скрипт проверяет список баз, и если он не изменился - Приходит письмо "ОК". Подтверждая, что контроль ведется. Если список баз изменился - приходит письмо с изменениями и заголовком "ALARM". В этом случает требуется уточнить причину, а после зафиксировать изменения, выполнив скрипт с ключом "-s" Предполагаю, что отправка почты на сервере уже настроена (я использую msmtp + mutt).

Для установки mutt на Dibian/Ubuntu.

sudo apt install mutt gpgsm

Здесь я не буду заострять внимание, как настроить отправку почты на linux, статей по этой тебе очень много.

Собственно скрипт:

#!/bin/bash
# check 1c files and Postgres databases list (C) Oleg N.Germanenko 2019-2021 revision 2021-02-22
#
#  -h help
#  -s Save current database list (fix changes)
#   otherwise check hash

SCR_FILENAME=$(readlink -e "$0")
CUR_DIR=$(dirname $SCR_FILENAME)
TEMP_DIR=/dev/shm;test -d $TEMP_DIR ||TEMP_DIR=$(dirname $(mktemp -u))

declare -r CUR_BASE_LIST=$TEMP_DIR/curbaselist.txt
declare -r OLD_BASE_LIST=$CUR_DIR/oldbaselist.txt
declare -r LOG=$SCR_FILENAME.log
declare -r PG_USER=postgres
declare -r ADM_MAIL=admin@organization.ru
# commen FILES_BASE_DIR line for check PostgreSQL variant 1c
declare -r FILES_BASE_DIR=/usr/local/bases_1c

 #Get current db list
cd $TEMP_DIR

if [[ -d $FILES_BASE_DIR ]];then #files 1c
  find $FILES_BASE_DIR -type f -name "1Cv8.1CD" -printf  "%h\n" |sort >$CUR_BASE_LIST
else # sql 1c
 # Postgres user
  sudo -u $PG_USER psql -l|head -n -2|awk '{if(NR>3 && $1!="|") print $1}'|sort>$CUR_BASE_LIST
fi
  chmod 600 $CUR_BASE_LIST
  cd - >/dev/null
 #check or create old db list file
  test -f $OLD_BASE_LIST || :>$OLD_BASE_LIST && chmod 600 $OLD_BASE_LIST
 # compare current and old lists
  diff  $CUR_BASE_LIST $OLD_BASE_LIST |sed -E '/^[<>]/!d;s/</NEW_DB    /g;s/>/DELETED_DB/g'>$LOG
NOW=$(date "+%Y%m%d")
case $1 in
  -h)
 # cat help only
    sed '/^# /!d' $SCR_FILENAME
    ;;
  -s)
 # save current db list
    cp -f $CUR_BASE_LIST $OLD_BASE_LIST
 # send e-mail
    echo "DB_LIST SAVED" $(cat $CUR_BASE_LIST |wc -l)|mutt -s "$HOSTNAME checkdblist $NOW DB_LIST SAVED" $ADM_MAIL
    :>$LOG
    ;;
   *)
    if [[ -s $LOG ]];then
 # db list was changed. send e-mail
      cat $LOG |mutt -s "$HOSTNAME checkdblist ALARM $NOW"  $ADM_MAIL
    else
 # db list not changed. send e-mail
      echo "All OK" $(cat $CUR_BASE_LIST |wc -l) |mutt -s "$HOSTNAME checkdblist $NOW OK"  $ADM_MAIL
    fi
    ;;
esac

rm $CUR_BASE_LIST

Сохраняем скрипт под именем, например cbdl.sh

chmod 700 ./cdbl.sh

скрипт нужно запускать от root, поскольку используется sudo.

обычно cron с этим прекрасно  справляется

0 0 * * * /root/work/cdbl/cdbl.sh

Если используется файловый вариант - путь к базам пропишите в переменной FILES_BASE_DIR.

Если sql - просто закомментируйте строку с этой переменной.

Всем стабильной работы!

Вступайте в нашу телеграмм-группу Инфостарт

Контроль архивирование postgres postgresql файловый вариант web linux bash

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Архивирование (backup) Инструменты администратора БД 1С:Предприятие 8 1C:Бухгалтерия 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Данная разработка позволит решить вопрос с резервным копированием Ваших баз в автоматическом режиме, расположенных на сервере 1С. Система умеет ставить блокировки на вход, блокировать фоновые задания, принудительно отключать сеансы пользователей. И все это система делает в автоматически при создании бэкапа (или через команду). Выгрузка происходит в родной формат 1С - .dt. Так же система умеет архивировать данные выгрузки с установкой пароля. Умеет менять расширение файла zip или dt на любое указанное вами, что позволит сохранить выгрузки от шифровальщика. Может удалять старые копии выгрузок, оставляя указанное количество резервных копий, начиная с самой поздней. Только для WINDOWS! Версия 1.4 от 28.05.2026

7320 руб.

06.11.2012    80383    635    45    

94

Архивирование (backup) Обновление 1С Системный администратор Разработчик 1С 8.3 Бесплатно (free)

Платформа 8.3.17, MS SQL Server: обновление конфигурации падает через 15 секунд на этапе обновления предопределённых данных, и конфигуратор при каждом входе предлагает только повторить. Проверьте у себя, когда сделана последняя полная копия базы: у нас её не было почти месяц. Разбор по минутам: что не помогло (перезапуск агента сервера 1С, перезагрузка, пакетный /UpdateDBCfg, три совета со стороны) и почему. Как ibcmd достал .dt из базы, которая не открывается, и как новую базу подставили под старым именем в кластере 1С через rac, не трогая пользователей. Простой 57 минут, потерь данных нет. Отдельно ошибки ИИ-агента Claude, который работал на сервере, и порядок действий на случай, если это случилось у вас.

03.11.2026    461    nedomolkov.ivan    11    

5

Архивирование (backup) Инструменты администратора БД Системный администратор Разработчик 1С 8.3 1С:Управление торговлей 11 1С:Библиотека стандартных подсистем Абонемент ($m)

Полностью автоматизированная внешняя обработка для администрирования 1С: блокировка/разблокировка ИБ, массовое завершение сеансов, резервное копирование и восстановление из .dt, выгрузка/загрузка конфигурации (.cf), пакетная работа с расширениями (.cfe) и дополнительными обработками – всё через удобную форму без ручных запусков конфигуратора и консоли кластера

1 стартмани

21.01.2026    6500    66    war41k    0    

18

Архивирование (backup) Групповая разработка (Git, хранилище) Системный администратор Разработчик Бесплатно (free)

Как дать возможность каждому разработчику 1С вести разработку, тестирование и оптимизацию на собственной полноразмерной копии базы и при этом не тратить миллиарды рублей и тысячи часов на развертывание тестового окружения, а так же экономить дисковое пространство? Расскажем о том, как с помощью инструмента Database Lab получать полноразмерные копии базы 1C на СУБД PostgreSQL за считанные секунды (даже в случае использования многотерабайтных баз).

15.12.2025    14186    nasonkin    19    

31

Архивирование (backup) Учет документов Бухгалтер 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

В текущих версиях 1С пока нет функции, позволяющей автоматически отмечать возврат оригиналов документов с помощью сканера штрих-кодов. Многие контрагенты часто сталкиваются с проблемой утери оригиналов УПД или их невозврата. В ответ на эти запросы было разработано расширение, которое упрощает контроль за возвратом оригиналов документов и помогает лучше организовать их хранение.

12200 руб.

19.02.2025    2939    3    0    

3

Архивирование (backup) Системный администратор 1С 8.3 Бесплатно (free)

Предлагаю Вашему вниманию 3 скрипта на bash (sh) для архивирования (backup) типовых конфигураций на Linux средствами 1С и Postgres. Перед запуском корректно заполните раздел "Параметры" в соответствии с Вашими настройками.

20.01.2025    5972    Prelude    5    

12

Архивирование (backup) 1С 8.3 1С:Библиотека стандартных подсистем Абонемент ($m)

Резервные копии базы 1С без завершения сеансов: .dt, файл базы, PostgreSQL, MS SQL, своя команда. Расписание, профили, ротация, ZIP, FTP, журнал и письмо об ошибке. Платформа 8.3+ (кроме 8.2), любая конфигурация с БСП. Подключение за 5 минут.

5000 руб.

27.08.2024    4135    1    6    

2

HighLoad оптимизация Администрирование СУБД Архивирование (backup) Системный администратор Разработчик 1С:Предприятие 8 Бесплатно (free)

Бэкап в Postgres состоит из набора граблей, которые нужно обойти для успешного восстановления. Они заложены в самых неожиданных местах от предмета резервного копирования (база или кластер) до структуры каталогов. Один неверный шаг и восстановление будет невозможным. Почему нельзя было сделать проще, как в MS SQL или Oracle? Почему бэкап в Postgres оставляет впечатление чьей-то лабораторной работы? Статья адресована прежде всего специалистам 1С, избалованным комфортом в MS SQL, в суровых буднях импортозамещения на Postgres.

13.08.2024    10676    1CUnlimited    11    

6
Для отправки сообщения требуется регистрация/авторизация