Связаться по Skype: vkarabedyants
Позвонить Написать
+7 (499) 404-28-83

Блог о системном администрировании серверов и сайтов

Установка, настройка программного обеспечения Linux, Windows операционных систем

Мониторинг и бэкап на VPS без панели

Две важные вещи — мониторинг и бэкап. После установки сайт может падать из-за неоптимальных настроек. Поэтому лучше сразу установить хотя бы простое решение, позволяющее перезапускать сервисы. В репозиториях есть отличные утилиты healt-check или monit, проверяющие не только сервисы, но и общее состояние системы. Настроек там много, и на первых порах или на легких сайтах можно обойтись простеньким скриптом. Для nginx он будет выглядеть примерно так:

Скрипт перезапуска службы

По аналогии можно добавить контроль MySQL, PHP-FPM и SMTP-сервера. Решений для бэкапа в репозитории больше чем достаточно, в зависимости от ситуации и наличия ресурсов можно подобрать себе любой по вкусу. В самом простом случае можно использовать самописный скрипт, который будет собирать папки /etc, веб-серверы и SQL-базы и отправлять их на FTP. Файлы будем хранить неделю. Чтобы файлы удалялись автоматически, в имени будем использовать остаток от деления, тогда новый файл с таким же именем будет перезатираться. В нашем примере будем делить на 7.

Скрипт бэкапа сайта

Отличный скрипт для бэкапа, если у Вас один или два сайта. Для большого количества сайтов, нужно писать более сложный скрипт с разделением архивов по сайтам.

У нас Вы можете заказать настройку резервного копирования вашего сайта, или поддержку всего VPS, обращайтесь в раздел  Контакты.

3 Responses

  1. Dmitriy

    Хороший скрипт. Было б не плохо иметь дампы баз отдельно не в одном файле, часто бывает надо развернуть бекап конкретной базы а не всег баз. к примеру вот так:
    for db in $(mysql -u${MYSQL_USER} -p${MYSQL_PASSWORD} -e ‘show databases;’ | grep -Ev «^(Database|mysql|information_schema|performance_schema|phpmyadmin)$»)
    do
    #echo «processing ${db}»
    mysqldump —opt -u${MYSQL_USER} -p${MYSQL_PASSWORD} «${db}» | gzip > ${WORKING_DIR}/${db}_$(date +%F_%T).sql.gz
    done

  2. werter

    Спасибо за скрипт.
    Дополню. Чтобы каждый раз не задавать значения переменным PGREP, TAR, etc., можно в исполн. файле дописать в начале файла:

    PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

  3. werter

    И gzip -9 — это много (тем более, что он однопоточен). Вполне хватит 5 — скорость сжатия и степень оптимальны.
    Для многопоточности же исп. 7Zip. Т.е. сперва упаковываем в TAR для сохранения разрешений на файлы и папки, а после — в 7Zip для лучшего сжатия и скорости (за счет многопоточности).

Оставить комментарий

Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.