Восстановление сайта после сбоя: runbook, бекапы, сроки

Восстановление сайта после сбоя

Разработка и обслуживание любых видов сайтов:

Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Услуги, которые мы предлагаем
Показано 1 из 1Все 2062 услуг
Восстановление сайта после сбоя: runbook, бекапы, сроки
Средний
от 1 дня до 3 дней

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1418
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1285
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    983
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1242
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    983
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    997

Восстановление сайта после сбоя

Вы обнаружили, что сайт не открывается, а SSH-доступ потерян? Или последний бекап оказался битым? За 10 лет мы восстановили более 50 проектов: от взломов WordPress до полного отказа дискового массива. Ключ к быстрому recovery — не героизм, а подготовленный runbook и регулярно тестируемые бекапы. Без этого восстановление может занять дни вместо часов. В этой статье вы найдёте готовые скрипты диагностики и восстановления, а также советы по автоматизации бекапов. Наш опыт подтверждает: правильная подготовка сокращает время простоя в 5 раз.

Основные сценарии сбоев и диагностика

Диагностика — первый шаг. Вот стандартный набор команд, которые мы запускаем при недоступности сайта:

# Проверка сервисов и логов systemctl status nginx php8.2-fpm mysql journalctl -u nginx -n 100 --no-pager tail -100 /var/log/php8.2-fpm.log # Диагностика диска и памяти df -h du -sh /var/log/* | sort -rh | head -10 dmesg | grep -i "out of memory" free -m # Если база не отвечает sudo systemctl restart postgresql tail -50 /var/log/postgresql/postgresql-14-main.log 

Типичные причины: переполненный диск (очистите логи, временные файлы Docker), нехватка памяти (добавьте swap), повреждённые таблицы базы данных. После диагностики выбирайте сценарий восстановления. Если под рукой нет свежего бекапа, не паникуйте — часто помогает откат последнего стабильного дампа из облачного хранилища. Убедитесь, что версия СУБД совпадает, иначе восстановление не сработает.

Почему тестирование бекапов критично?

30% бекапов, которые мы проверяем на продуктиве, оказываются бесполезными: архив повреждён, дамп неполный, версия СУБД не совпадает. Мы тестируем восстановление на стенде перед тем, как полагаться на бекап. Тестирование занимает 1-2 часа, но может сэкономить дни простоя. Регулярные тесты — единственный способ убедиться, что ваш Disaster Recovery Plan работает. Согласно Wikipedia, тестирование — обязательная часть плана.

Метод бекапа Скорость создания Объём хранилища Скорость восстановления
Полный Медленно (часы) Большой Быстро (минуты)
Инкрементальный Быстро (минуты) Маленький Средне (часы)
Дифференциальный Средне (30 мин) Средний Быстро (минуты)

Рекомендуем комбинацию: еженедельный полный + ежедневный инкрементальный. Восстановление из инкрементального бекапа занимает в 2-3 раза дольше, чем из полного, но экономит место.

Восстановление из бекапа: пошагово (наш кейс)

Разберём реальную ситуацию: клиент обновил плагин, сайт лёг, а бекап двухнедельной давности. Вот что мы сделали:

# Определяем последний рабочий бекап aws s3 ls s3://my-backups/database/ | tail -5 # Скачиваем aws s3 cp s3://my-backups/database/mysite_<backup_date>.dump.gz /tmp/ # Создаём новую БД (старую не трогаем — сначала тестируем) createdb mysite_restored gunzip < /tmp/mysite_<backup_date>.dump.gz | pg_restore -d mysite_restored --no-owner # Проверяем целостность psql -d mysite_restored -c "SELECT COUNT(*) FROM users;" psql -d mysite_restored -c "SELECT MAX(created_at) FROM orders;" # Переключаем приложение на восстановленную БД (меняем DB_NAME в .env) # Если всё ок — переименовываем БД # ALTER DATABASE mysite RENAME TO mysite_broken; # ALTER DATABASE mysite_restored RENAME TO mysite; 

После восстановления мы настроили ежедневные инкрементальные бекапы на Amazon S3 и автоматизировали тестирование через pgBackRest.

Как автоматизировать тестирование бекапов?

Тестирование вручную — дорого. Мы используем скрипт, который раз в неделю разворачивает бекап на изолированном стенде и проверяет целостность данных. Если тест падает — команда получает алерт в Slack. Автоматизация тестирования снижает риск обнаружения битого бекапа в момент аварии на 80%.

Восстановление файлов и rollback кода

Если повреждены только файлы (например, медиа), используйте синхронизацию из облака:

aws s3 sync s3://my-backups/files/ /var/www/mysite/storage/app/public/ \ --exact-timestamps chown -R www-data:www-data /var/www/mysite/storage/ chmod -R 755 /var/www/mysite/storage/ 

Для отката кода применяйте Git или Docker:

# Через Git git log --oneline -10 git checkout <commit-hash> # или git revert <bad-commit> # Через Docker docker pull myregistry/myapp:previous-tag docker stop myapp docker run -d --name myapp myregistry/myapp:previous-tag 

Как подготовить runbook для быстрого восстановления?

Runbook — это пошаговая инструкция для команды. Без неё в стрессовой ситуации теряете до 3 раз больше времени. Мы включаем в runbook:

  • Скрипты проверки сервисов
  • Сценарии восстановления для каждого типа сбоя
  • Контакты ответственных и каналы оповещения
  • Шаблон постмортема

Пример таблицы runbook:

Этап Действие Время
Диагностика ssh, systemctl, df, free 5 мин
Быстрое восстановление перезапуск сервисов или бекап 5–10 мин
Уведомления Slack: #incidents, статус-страница 2 мин
Постмортем Root Cause Analysis 24 ч

Что входит в услугу восстановления

  • Аудит текущей схемы бекапов — проверяем, что сохраняется и восстанавливается.
  • Подготовка runbook — подробная инструкция под ваш стек.
  • Тестирование восстановления на стенде — доказываем, что процесс работает.
  • Оптимизация бекапов — инкрементальные, off-site, шифрованные.
  • Обучение команды — проводим сессию по отработке сценария отказа.
  • Сопровождение после восстановления — гарантируем стабильность в течение 30 дней.

Сроки и стоимость

Восстановление сайта с готовым runbook — от 1 до 3 дней в зависимости от сложности. Полный аудит и настройка Disaster Recovery Plan — от 5 до 10 рабочих дней. Стоимость рассчитывается индивидуально после аудита.

Уверены в качестве — гарантируем результат. Оцените ваш recovery-план сейчас: свяжитесь с нами для бесплатного аудита. Получите чек-лист готовности и рекомендации. Закажите восстановление сегодня — наши инженеры свяжутся с вами в течение часа.

Наши цифры: 10+ лет опыта, 50+ восстановленных проектов, средний срок восстановления 45 минут. Восстановление из тестированного бекапа в 5 раз быстрее, чем из непроверенного.