В этом каталоге находятся промежуточные задания. Всего их 4:
- задачи по bash
- прохождение курса hackthebox
- решение регулярок
- небольшой проект, который нужно докеризировать и реализовать CI/CD
Ниже описано каждое задание подробнее.
Вход по паролю будет отключён 01.05.2023. До этого времени необходимо настроить авторизацию по ключу.
В каталоге bash есть шаблоны скриптов. После подключения github репозитория и деплоя запустится github action, который проверит правильность их выполнения. Задачи:
- Скрипт, который раз в секунду забирает среднюю загрузку системы из /proc/loadavg и сохраняет в файл в течение определённого времени. Имя файла и таймфрейм задаются в качестве аргумента. Каждая строка в результирующем файле должна иметь вид
[dd.mm](http://dd.mm/).yy hh:mi = <вывод /proc/loadavg>. - Скрипт, который принимает путь в качестве аргумента и создаёт набор файлов с названием подкаталогов в указанном пути и содержимым числом элементов в этом подкаталоге. Обработать ошибку, если путь не существует.
- Подсчитать количество строк в файлах, переданных как параметры. Пример вызова:
lcc .bash_history .bashrc /etc/passwd. Обработать ошибку, если файла не существует. - Скрипту передаётся название планеты как аргумент, вывести количество спутников. Обработать ошибку в названии планеты (сказать, что такой не существует).
- Для всех файлов в каталоге /var/log, которые заканчиваются на .log, получить последнюю строчку и сохранить в файл logs.log.
- Написать скрипт, который будет ждать появления файла в текущем каталоге. Как только файл появится, вывести об этом сообщение. Запретить выполнение скрипта, если переменная окружения FOO равна 5 и переменная окружения BAR равна 1.
- Для каждого пути в PATH вывести его название и количество файлов в нём.
- Проверить, что все переменные окружения для локализации (начинаются на "LC_") имеют одинаковое значение. Если это не так, сообщить ошибкой.
Внимательно читайте вывод pytest, в нём указан формат ожидаемого ответа. Проверить файлы локально можно на сервере, запустив скрипт check.sh.
Необходимо зарегистрироваться на сайте Hack the Box Academy, пройти курс Linux Fundamentals и закоммитить в каталог скриншот завершённого прогресса.
Необходимо зарегистрироваться на сайте RegexCrossword, пройти модули "Double Cross" и "Cities" и закоммитить скриншот завершённого прогресса.
В каталоге docker находится небольшое python-приложение, которое реализует CRUD к таблице users. Необходимо написать для него Dockerfile, подключить автоматический запуск тестов при коммите в master и деплой на сервер. Проверить работоспособность можно с помощью запросов к http://212.192.134.135:60080//users/, где username - ваш логин. Приложение должно слушать порт, указанный в листке с кредами.
Будет оцениваться:
- Размер docker-образа
- Реализация 2-stage build
- Тестирование на CI/CD должно проходить в собранном образе с подключёнными сервисами
- Доработки приложения