Каталог
Практические задачи
Тренажёр на реальной системе: ломаем сервис, даём терминал, проверяем результат по чекпоинтам.
38 из 38 · Сбросить
Вход, который никогда не заканчивается
Страница входа портала за TLS-прокси бесконечно редиректит сама на себя. Разорвите петлю, не отменив требование https.
0 комментариевДеплой ждёт новую схему
API на SQLite после обновления ждёт колонку, которой нет в таблице, — валятся и чтение, и запись. Мигрируйте схему вперёд, не потеряв три исторических инцидента.
0 комментариевОтчёт не загружается
Загрузка рабочего отчёта обрывается 413, хотя мелкие файлы проходят. Верните загрузку, не сняв защиту входа.
0 комментариевnginx не отвечает на 80
nginx не отвечает на 80-м порту. Разберитесь, почему процесс не запускается, и восстановите его.
0 комментариевnginx отдаёт не тот сайт
nginx работает, но отдаёт заглушку вместо настоящего сайта. Включите правильный сайт.
0 комментариевВторое по частоте слово
Найдите второе по частоте слово в тексте без учёта регистра и пунктуации.
0 комментариевГде мой веб-сервер?
Веб-сервис с паролем не отвечает на документированном порту. Найдите, где он на самом деле, и заберите пароль.
0 комментариевОбратный прокси и мёртвый апстрим
Сайт за nginx отдаёт 502 Bad Gateway. Сам nginx жив — не отвечает бэкенд, на который он проксирует. Верните ответ приложения.
0 комментариевПользователь не может писать в свой дом
appuser не может создавать файлы в своём домашнем каталоге. Верните ему доступ к собственному дому.
0 комментариевПорт занят посторонним процессом
Веб-сервис не стартует — порт 8080 занят посторонним процессом, и на нём отвечает не тот сервис. Освободите порт и верните основной сайт.
0 комментариевСайт есть в архиве, а unzip в системе нет
Сайт не отдаёт главную: исходники лежат в zip-архиве, а unzip в системе не установлен.
0 комментариевСервис не стартует из-за конфига
Демон приложения не стартует — порт 8080 молчит. Причина в его конфигурации: найдите и исправьте.
0 комментариевСкрипты не запускаются: битые переводы строк
Deploy-скрипты падают с ошибкой интерпретатора при прямом запуске. Найдите причину и верните их в строй.
0 комментариевУсечённое среднее
Посчитайте среднее по колонке чисел с усечением (не округлением) до двух знаков.
0 комментариевУчётные записи по списку
Список сотрудников «логин;пароль» есть, а учётных записей на машине нет. Заведите их.
0 комментариевФайл есть, но сервер ничего не отдаёт
Файл на диске есть и содержит верный текст, но HTTP-запрос к серверу ничего не возвращает.
0 комментариевФайл закрыт от сервиса
Сервис не может прочитать свой файл данных — GET /data.txt отдаёт 403. Дайте сервису доступ, не открывая файл всем подряд.
0 комментариевWatchdog убивает свежий процесс после рестарта
Собственный watchdog убивает воркер на каждом рестарте. Почините отслеживание PID, не отключая наблюдение.
0 комментариевБинарь не может связаться со службой
Бинарь не может связаться со службой после её переезда на новый адрес. Почините связь, не подделывая ответ.
0 комментариевБэкапы тихо перестали сниматься
Бэкап по расписанию не снимается три дня, и ни одной ошибки в логах. Верните регулярные бэкапы.
0 комментариевДва поддомена не резолвятся
Свой DNS-сервер не резолвит два поддомена зоны. Найдите причину в зоне и почините резолвинг.
0 комментариевИспорченная запись в SQLite
Скрипт readdb.py читает имя из SQLite и печатает не то значение. Исправьте данные в базе, не трогая скрипт.
0 комментариевМесто занято, а файлов нет
На разделе с логами кончилось место, но du и ls почти пусты. Верните свободное место, не уронив сервис.
0 комментариевНужный диск среди похожих
Отфильтруйте диски из JSON-выгрузки по пяти критериям и найдите единственный подходящий.
0 комментариевОбработка очереди встала
Сообщения из FIFO перестали обрабатываться — читатель не работает. Восстановите обработку в лог.
0 комментариевПриложение отвечает слишком медленно
Приложение на 8080 отвечает, но каждый запрос тянется секундами. Найдите и устраните задержку.
0 комментариевПробросить порт без остановки сервиса
Сервис на 20280 нужно сделать доступным на 80, не останавливая и не переконфигурируя его.
0 комментариевРаскладка кучи зависла на монтировании
Программа зависла, раскладывая файлы по разделу из /etc/fstab. Разберитесь в мониторинге и доведите работу до конца.
0 комментариевРеплика Redis молча отстала
Redis-реплика подключена, но данные с мастера до неё не доезжают. Почините репликацию, не снимая пароль с мастера.
0 комментариевСервис падает: слишком много открытых файлов
Сервис не стартует с ошибкой «Too many open files». Поднимите лимит дескрипторов и верните сервис.
0 комментариевСлить сотни CSV в один отчёт
338 файлов с результатами участков лежат россыпью, каждый со своим заголовком. Слейте их в один отчёт.
0 комментариевСнапшот на жёстких ссылках
Снапшот сделан жёсткими ссылками на прод — правка боевых файлов молча меняет бэкап. Разорвите ссылки, сохранив данные.
0 комментариевТест сломал один коммит
Тест в репозитории проходил на первом коммите и падает на последнем. Найдите коммит, который его сломал.
0 комментариевФайл держит открытым зависший процесс
Файл /opt/oax/somefile держит открытым зависший процесс. Освободите файл, не удаляя его.
0 комментариевЧистка истории команд
В истории команд остались вызовы, которых там быть не должно. Уберите их, не сломав историю.
0 комментариевПодменённая liblzma на боевой машине
В систему подложены копии liblzma.so.5. Снимите подмену, не уронив сервисы, которые её используют.
0 комментариевМашина деградирует под нагрузкой
Сервер еле отвечает, load average втрое выше обычного. Найдите виновника и остановите его, не уронив рабочий сервис.
0 комментариевУпавший веб-сервер
Сайт на машине не открывается — соединение обрывается сразу. Найдите причину и верните странице HTTP 200.
0 комментариев
Как устроены задачи HireOps
Каждая задача: рабочая система с внесённой поломкой, упавший сервис, забитый диск, процесс, съедающий CPU. Терминал даёт полный доступ, чекпоинты проверяют результат автоматически, без ручной проверки.
Форматы разные: от одного сломанного сервиса на десять минут до многошагового расследования на час. Условие одно: система должна снова работать, не только выглядеть рабочей.
Задачи открыты всем и бесплатны, поэтому в оценке кандидатов на настоящем интервью не участвуют: интервьюер собирает сессию из другого набора кейсов. Подробнее о формате технических интервью на главной странице HireOps.