• Главная
  • Документация

АГИС Администрирование

Главная/Документация/АГИС Администрирование
Развернуть все Свернуть все
  • О разделе АГИС Администрирование
  •  Установка АГИС
    • Инсталяция Ubuntu
    • Установка LVM
    • Установка Docker
    • Установка модулей АГИС
    • Резервные копии
  • Запуск, перезапуск и останов АГИС
  •  Администрирование
    •   Ubuntu
      •   LVM&Snapshot
        • Snapshot
        • agis_backup_lvm_xfs
        • Ошибки
      •   Nginx, ssl, letsencrypt
        • Сертификат ssl
        • Letsencrypt
      •   NAS
        • Synology
        • Qnap
      •   SSH
        • SSH доступ без пароля по ключу
        • Клиент ssh
      •   Разные команды
        • Основные команды Linux
        • Расширенные команды
        • Работа с сервером
        • Gnome
      • FTP server
      • VPN server
    •   Базы данных
      • Запуск базы данных АГИС
      •   Mongo
        • mongodump-mongorestore
        • Основы
        • Test mongo db
        • Запросы mongodb
        • Запуск mongodb
        • Studio 3T for Mongo DB
        • Тестовый контейнер mongodb
        • mongodb формат даты
        • Replica set
      •   PostgreSQL
        • Test postgis
        • Dump&Restore PostgreSQL
        • Установка и запуск
        • PostgreSQL разное
      •   Elastic search
        • Команды elasticsearch
        • Tools to backup and restore ElasticSearch indices
      • Troubleshooting базы данных АГИС
      • MySql
    •   Docker
      • Команды Docker
      • Команды Docker (admin)
      • docker ps
      • .env
      • docker images save load
    •   Troubleshhoting
      • Mobaxterm
      • Проблема с дисками после raid
    •   Pfsense
      • Установка
      • Openvpn client
    •   Разное
      • Сколько байт(бит) в килобайте, мегабайте, гигабайте
      • Save bookmarks Studio 3T Mobaxterm
      • Acronis true image
      • Кодировки
      • OPC
  •  АГИС ГИС сервер
    • Запуск и остановка Tile сервера
    • Экспорт шейпа из АГИС ГИС
    • Импорт шейпа в АГИС ГИС
    • Backup&restore postgis(postgres)
    • Запуск pgAdmin4
    • Troubleshooting postgis
  •  АГИС Администрирование
    •   Пользователи
      • Добавление нового пользователя
    •   Роли
      • Добавление новой роли
    •   Перевод
      • Добавления перевода
    • АДС (Автоматизированная дисп служба)

Резервные копии

315 просмотров 0

Относится к стандартной установке
Настройки могут меняться в зависимости от конфигурации системы. Необходмо получить пояснения от авторизированного установщика системы

Настройка создания резервных копий (LVM)

Проводиться полное копирование данных и системы АГИС с использованием технологии LVM. Время и частота запуска резервного копирования определяется в файле /etc/crontab
Резервные копии храняться в директориях:
/data/backup/day – ежедневные бакапы. По умолчанию, храняться архивы за последние 7 дней. Все архивы, созданные ранее 7 дней удаляются
/data/backup/week – недельные бакапы, по истечении 30 дней удаляются
/data/backup/ – месячные бакапы, не удаляются

Настройка

Добавить в конец файла /etc/crontab
В 0-50 и 1-00, каждый день будет запускаться процесс резервного копирования. Возможно изменить время запуска процесса

# Do not forget
# /usr/bin/systemctl restart cron
50 0    * * *   agis    /data/agis/agis-script/agis-config-tgz
0  1    * * *   root    /data/agis/agis-script/agis_backup_lvm_xfs

В результате получится:

$ cat /etc/crontab
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
# Do not forget
# /usr/bin/systemctl restart cron
50 0    * * *   agis    /data/agis/agis-script/agis-config-tgz
0  1    * * *   root    /data/agis/agis-script/agis_backup_lvm_xfs

Выполнить для обновления планировщика заданий cron

# /usr/bin/systemctl restart cron

Просмотр логов проведения бакапов

cat – выводит файл целиком
tail – выводит последние 10 строк файла и обновляется в терминале. -n 50 – будет выводить послдение 50 строк

$ cat /var/log/agis_backup.log
---------------------------------------------------------------------------------------------
2021-05-13 01:00:01 Start LVM backup. File system xfs
2021-05-13 01:00:01 1 System:agis From:agis
2021-05-13 01:00:02 Creation of the lvm snapshot successfully
2021-05-13 01:00:02 Mount snapshot successfully
2021-05-13 01:05:57 Done /backup/agis-2021-05-13_01-00-01.tgz
2021-05-13 01:05:58 Snaphost has been removed successfully
2021-05-13 01:07:05 TGZ file /backup/agis-2021-05-13_01-00-01.tgz created successfully
2021-05-13 01:07:50 Copy backup agis-2021-05-13_01-00-01.tgz to /data/backup/day successfully
2021-05-13 01:07:50 Remove agis-2021-05-13_01-00-01.tgz from temporary backup directory successfully
2021-05-13 01:07:50 Delete files in /data/backup/day more than 10 days
2021-05-13 01:07:50 Finish backup
$ tail -f /var/log/agis_backup.log
2021-05-14 03:47:13 1 System:agis From:agis
2021-05-14 03:47:14 Creation of the lvm snapshot successfully
2021-05-14 03:47:14 Mount snapshot successfully
2021-05-14 03:53:03 Done /backup/agis-2021-05-14_03-47-13.tgz
2021-05-14 03:53:04 Snaphost has been removed successfully
2021-05-14 03:54:07 TGZ file /backup/agis-2021-05-14_03-47-13.tgz created successfully
2021-05-14 03:54:48 Copy backup agis-2021-05-14_03-47-13.tgz to /data/backup/day successfully
2021-05-14 03:54:48 Remove agis-2021-05-14_03-47-13.tgz from temporary backup directory successfully
2021-05-14 03:54:50 Delete files in /data/backup/day more than 10 days
2021-05-14 03:54:50 Finish backup

Не рекомендуется установка системы без LVM

Настройка создания резервных копий без LVM

Если не используется LVM, то будет проводиться резрвное копирование базы данных mongo стандратными средствами самой mongo. Будет копироваться база agis-mongo-db
Добавить в конец файла /etc/crontab
В 0-50 и 1-00, каждый день будет запускаться процесс резервного копирования. Возможно изменить время запуска процесса

# Do not forget
# /usr/bin/systemctl restart cron
50 0    * * *   agis    /data/agis/agis-script/agis-config-tgz
0  1    * * *   agis    /data/agis/agis-script/agis-mongo-postgis-backup.sh

В результате получится:

$ cat /etc/crontab
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
# Do not forget
# /usr/bin/systemctl restart cron
50 0    * * *   agis    /data/agis/agis-script/agis-config-tgz
0  1    * * *   agis    /data/agis/agis-script/agis-mongo-postgis-backup.sh

Выполнить для обновления планировщика заданий cron

# /usr/bin/systemctl restart cron

Просмотр логов проведения бакапов

$ cat /data/backup/agis-dump/agis-YYYY-MM-DD-HHMM-mongo.log
$ cat /data/backup/agis-dump/agis-YYYY-MM-DD-HHMM-postgis.log

или

$ tail -f /data/backup/agis-dump/agis-YYYY-MM-DD-HHMM-mongo.log
$ tail -f /data/backup/agis-dump/agis-YYYY-MM-DD-HHMM-postgis.log

YYYY-год
MM-месяц
DD-день
HHMM-час минута
Например, 2021 год, 12 мая, 3 часа 26 минут, время UTC.

/data/backup/agis-dump/agis-2021-05-12-0326-mongo.log
/data/backup/agis-dump/agis-2021-05-12-0326-postgis.log

mongo-postgis-backup.sh

$ cat /data/script/agis-mongo-postgis-backup.sh
#!/bin/bash
APP_NAME="agis"
TIMESTAMP=`date +%F-%H%M`
BACKUPS_DIR="/data/backup/agis-dump"
BACKUP_NAME="$APP_NAME-$TIMESTAMP"
echo "$(date +"%Y-%m-%d %H:%M:%S") Start mongodump --gzip --archive" > $BACKUPS_DIR/$BACKUP_NAME.log
/usr/bin/docker exec agis-mongo-db sh -c "mongodump --gzip --archive" > $BACKUPS_DIR/$BACKUP_NAME.tgz 2>>$BACKUPS_DIR/$BACKUP_NAME.log
if [ $? = 0 ]; then
echo "Резервная копия сделана" >> $BACKUPS_DIR/$BACKUP_NAME.log
else
echo "Ошибка при создании резрвной копии" >> $BACKUPS_DIR/$BACKUP_NAME.log
fi

Если в БД установлен пароль, то для бакапа нужен пользователь agis-dump с ролью backup
Если база с паролем, то нужно добавить в файл /data/script/agis-mongo-postgis-backup.sh

--username=agis-dump --password=i99xfeiyZ1kF
/usr/bin/docker exec agis-mongo-db sh -c "mongodump --username=agis-dump --password=i99xfeiyZ1kF --gzip --archive"

Backup mongo billing container with log 

Запуск

$ nohup /data/agis/agis-script/agis-mongo-dump-period-close.sh &

Сам скрипт:

#Settings
BACKUPDIR="/data/backup/dumps_period_close" # name of the directory where backup have to save
BACKUPCONT="agis-mongo-db-bil"
# ----------------------------------------------------------------------------------------------

TIMESTAMP=$(date +"%Y-%m-%d_%H-%M")
LOGFILE=$BACKUPDIR/$BACKUPCONT-$TIMESTAMP.log

echo $(date +"%Y-%m-%d %H:%M:%S") "Start mongodump $BACKUPCONT --gzip --archive" > $LOGFILE

/usr/bin/docker exec $BACKUPCONT sh -c "mongodump --gzip --archive" > $BACKUPDIR/$BACKUPCONT-$TIMESTAMP.arch-dump 2>>$LOGFILE

if [ $? = 0 ]; then
echo $(date +"%Y-%m-%d %H:%M:%S") "Резервная копия $BACKUPCONT сделана" >> $LOGFILE
else
echo $(date +"%Y-%m-%d %H:%M:%S") "Ошибка при создании $BACKUPCONT резервной копии" >> $LOGFILE
fi

echo $(date +"%Y-%m-%d %H:%M:%S") " Finish mongodump $BACKUPCONT --gzip --archive" >> $LOGFILE

Дополнительно

Для копирования резервных копий на дисковых хранилищах (NAS), необходимо запускать на дисковых хранилищах скрипты rsync

#!/bin/bash
echo "---------------------" >> /volume1/Backup/clients/client_backup.log
echo $(date +"%d-%m-%Y  %T") START >> /volume1/Backup/clients/client_backup.log
echo $(date +"%d-%m-%Y %T") AGIS >> /volume1/Backup/agis_dump/agis_dump_backup.log
/usr/bin/rsync -aze "ssh -p 22" user@192.168.60.18:/data/backup /volume1/Backup/agis_dump/
echo $(date +"%d-%m-%Y %T") Finish >> /volume1/Backup/clients/client_backup.log
echo "---------------------" >> /volume1/Backup/clients/client_backup.log
echo " " >> /volume1/Backup/clients/client_backup.log
Вам может быть интересно
  • OPC
  • Gnome
  • Сертификат ssl
  • Replica set
  • VPN server
  • MySql
  • Copyright 2020 AGIS. Все права защищены. e-mail: info@agis.kz Tel: +7(7172) 998386