Ответы пользователя по тегу Резервное копирование
  • Как мониторить бэкап бд zabbix?

    @mureevms
    Не уверен, что есть готовые решения. Я бы сделал так. От простого к сложному. Не все пункты обязательны. Можно сделать только первую проверки, можно все. Все пункты достаточно легко скриптуются.
    1. Проверка существования файла. Мы знаем в какое время делается бэкап, поэтому можно делать проверку на существование файла в заданных пределах по времени создания или же отфильтровать по маске даты.
    2. Проверка на не нулевой и адекватный размер. Известно, что архивированный дамп весит, например, 10MB, то проверкой будет соответствие, что файл не меньше этих 10MB.
    3. Проверка на читаемость. Надо разархивировать файл, чтобы проверить не битый ли он.
    4. Проверка существования актуальных данных внутри файла. Прогрепать файл на существование в нем каких-то вхождений.
    5. Проверка разворачивания дампа на отдельном SQL инстансе или базе.

    4 и 5 сомнительные, поскольку в большинстве случаев достаточно первых трех.
    Ответ написан
    Комментировать
  • Как настроить backup VDS на Яндекс.Диск?

    @mureevms
    Предисловие.
    Вы должны смонтировать Ядиск как описано в этой статье в каталог /mnt/yadisk, туда будут копироваться все бэкапы
    Для бэкапа всей системы лучше пользоваться инструментами которые предлагает хостер. Если таких нет или планируется переезд всей системы, то используйте п.1.
    Специально оставляю одну копию каждого бэкапа на VDS для удобства восстановления какого-либо файла.
    Прокомментирую только первый файл, остальные сделаны по подобию.
    Каталоги в /home/backup/... и /mnt/yadisk/... должны быть созданы.
    Скрипт бэкапа разбит на 4 штуки намеренно для удобства использования и запуска по крону с разными временными интервалами, что и надо будет сделать отдельно.
    Так же, советую предварительно перед бэкапом проверять смонтирован ли Ядиск, иначе место может внезапно закончится на сервере. Если интересно, то потом дам ссылку как это сделать.

    Бэкап

    1. Бэкап системы осуществляется при помощи команды tar
    Файл system_backup.sh:
    #!/bin/sh
    TIME=`date +%Y-%m-%d`
    # Что бэкапить
    WHAT=/
    # Куда класть бэкап
    WHERE=/home/backup/system
    # Куда копировать бэкап
    COPY=/mnt/yadisk/system
    # Бэкап системы. Файл бэкапа исключает системные каталоги и каталоги куда кладутся сами бэкапы
    tar -cpzf $WHERE/$TIME.tgz --exclude=/dev --exclude=/proc --exclude=/lost+found --exclude=/home/backup --exclude=/mnt /
    # Скопировать на файл бэкапа на Ядиск 
    cp $WHERE/$TIME.tgz $COPY
    ### Удалить старые файлы бэкапов
    # Оставить на VDS только последний
    find $WHERE -mtime +1 -print -delete
    # Удалить с Ядиска бэкапы месячной давности
    find $COPY -mtime +30 -print -delete


    2. Бэкап конфигов осуществляется так же при помощи команды tar (при текущих исходных данных все конфиги лежат в /etc)
    Файл etc_backup.sh:
    #!/bin/sh
    TIME=`date +%Y-%m-%d-%H:%M`
    WHAT=/etc
    WHERE=/home/backup/etc
    COPY=/mnt/yadisk/etc
    tar -cpzf $WHERE/$TIME.tgz $WHAT
    cp $WHERE/$TIME.tgz $COPY
    find $WHERE -mtime +1 -print -delete
    find $COPY -mtime +30 -print -delete


    3. Бэкап сайтов осуществляется аналогично (предполагаю, что они лежат в /var/www/)
    Файл www_backup.sh:
    #!/bin/sh
    TIME=`date +%Y-%m-%d-%H:%M`
    WHAT=/var/www
    WHERE=/home/backup/www
    COPY=/mnt/yadisk/www
    tar -cpzf $WHERE/$TIME.tgz $WHAT
    cp $WHERE/$TIME.tgz $COPY
    find $WHERE -mtime +1 -print -delete
    find $COPY -mtime +30 -print -delete


    4. Бэкап MySQL осуществляется при помощи команды mysqldump
    Файл mysql_backup.sh
    #!/bin/sh
    TIME=`date +%Y-%m-%d`
    # Логин пользователя мускула
    USER=root
    # Пароль пользователя мускула
    PASS=root_password
    WHERE=/home/backup/mysql
    COPY=/mnt/yadisk/mysql
    ### Базы которые надо бэкапить
    for base in base_name1 base_name2
    do
    # Сделать дамп баз
    mysqldump -u$USER -p$PASS -B $base > $WHERE/$base-$TIME.sql
    done
    cp $WHERE/$base-$TIME.sql $COPY
    find $WHERE -mtime +1 -print -delete
    find $COPY -mtime +30 -print -delete


    Восстановление

    Восстановление сайтов и конфигов осуществляется простым копированием в место назначения.
    Восстановление баз:
    mysql -u root -p root_password -f base_name1 < /home/backup/mysql/base_name1.sql
    mysql -u root -p root_password -f base_name2 < /home/backup/mysql/base_name2.sql


    Восстановление системы более сложный процесс, но суть сводится к одному - сделать чистую установку аналогичной ОС, загрузится с LIVE CD, подмонтировать Ядиск и распаковать архив в root директорию (root директорией называют корень файловой системы - / ), за исключением каталога /boot
    ОБЯЗАТЕЛЬНО заранее проделать восстановление на отдельной виртуалке.

    Вместо послесловия
    Такой бэкап, как говорится, и палкой не убить. Единственное, что надо делать - время от времени руками проверять архивы бэкапов на читаемость и прохождению нормального разархивирования. К сожалению, архивы бывают битыми.
    Ответ написан
    16 комментариев