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

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

См. также

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

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

12200 руб.

19.02.2025    1748    3    0    

3

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

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

6100 руб.

06.11.2012    77813    633    45    

92

Архивирование (backup) Системный администратор 1С:Предприятие 8 1C:Бухгалтерия Платные (руб)

Программа позволяет выполнять автоматическое создание копий файловых и серверных информационных баз 1С Предприятие 8 и размещение копий в облаке Яндекс.Диск, локальном или сетевом ресурсе.

5094 руб.

03.09.2014    18344    32    7    

39

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

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

15.12.2025    6595    nasonkin    17    

27

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

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

20.01.2025    3101    Prelude    5    

12

Архивирование (backup) 1С:Предприятие 8 1С:Управление нашей фирмой 3.0 Платные (руб)

Расширение поможет настроить резервное копирование баз SQL в стандартный файл выгрузки баз 1С (*.dt).

2400 руб.

27.08.2024    3054    1    6    

2

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

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

13.08.2024    7427    1CUnlimited    9    

6

Инструменты администратора БД Архивирование (backup) Системный администратор Программист 1С:Предприятие 8 Абонемент ($m)

Обработка для "обновления" своей тестовой базы из резервной копии рабочей базы без помощи админов.

1 стартмани

21.05.2024    3879    15    DenDev1C    4    

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