Создание резервных перед закрытием периода в биллинге
$ nohup /data/agis/agis-script/agis-mongo-dump-period-close.sh &
После завершения backup в папке /data/backup/dumps_period_close будут созданы два файла:
gis-mongo-db-bil-2021-01-23_05-36.arch-dump – это сам backup
agis-mongo-db-bil-2021-01-23_05-36.log – файл истории создания backup
При этом 2021-01-23_05-36 – это метка времени создания backup. Т.е. это дата и время начала создания backup, например в данном случае backup был запущен 23 января 2021 года, время 05 часов, 36 минут.
Для проверки текущего состояния процесса выполнения backup сделать следующее:
$ cd /data/backup/dumps_period_close $ ls -la total 115648116 drwxr-xr-x 4 bill bill 4096 Jan 29 17:30 . drwxr-xr-x 7 root root 4096 Dec 27 06:40 .. -rw-rw-r-- 1 bill bill 60639619976 Jan 23 07:33 agis-mongo-db-bil-2021-01-23_05-36.arch-dump -rw-rw-r-- 1 bill bill 438872 Jan 23 07:33 agis-mongo-db-bil-2021-01-23_05-36.log $ cat agis-mongo-db-bil-2021-01-23_05-36.log
Если в коцне файла log Вы увидите следующие строки, то процесс backup был успешно завершен 2021-01-23 07:33:20
..... 2021-01-23 07:33:20 Резервная копия agis-mongo-db-bil сделана 2021-01-23 07:33:20 Finish mongodump agis-mongo-db-bil --gzip --archive
Или видите статус в on-line следующей командой
$ tail -n 10 -f agis-mongo-db-bil-2021-01-23_05-36.log
Параметр -n – сколько строчек показывать на экране
Дополнительно:
nohup – UNIX-утилита, запускающая указанную команду с игнорированием сигналов потери связи (SIGHUP). Таким образом, команда будет продолжать выполняться в фоновом режиме и после того, как пользователь выйдет из системы. Запустили команду – вышли из ssh, пошли пить чай!
Скрипт agis-mongo-dump-period-close.sh
Тут есть два параметра
BACKUPDIR=”/data/backup/dumps_period_close” – папка, куда будет сохранен архив mongodump
BACKUPCONT=”agis-mongo-db-bil” – название контейнера базы данных mongo
В папке $BACKUPDIR будет создан log file содержащий историю выполнения mongodump
Пример:
agis-mongo-db-bil-2021-01-23_05-36.arch-dump – Сам архив
agis-mongo-db-bil-2021-01-23_05-36.log – log файл
$ cat agis-mongo-dump-period-close.sh #!/bin/bash # agis-mongo-dump-period-close.sh # Thi script is written to backup mongo billing container with log file # 30 Dec 2020 15:41:23 PM +06 # Author Kazdayev Nurlan #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