Skip to content

Latest commit

 

History

History
124 lines (78 loc) · 8.1 KB

5-03.md

File metadata and controls

124 lines (78 loc) · 8.1 KB

Домашнее задание к занятию "Regexp и его использование для синтаксического анализа"

Цель задания

В результате выполнения этого задания вы научитесь использовать:

  1. Регулярные выражения для фильтрации вывода;
  2. Утилиту sed для работы с конфигурационными файлами;
  3. Утилиту awk для анализа информации.

Чеклист готовности к домашнему заданию

  1. Установлена операционная система Ubuntu на виртуальную машину или локально и имеется доступ к терминалу (удаленный или из графической оболочки)
  2. Произведена работа с файлами, рассматриваемыми на лекции, которые находятся ссылке

Инструкция к заданию

  1. Домашнее задание выполните в Google Docs и отправьте на проверку ссылку на ваш документ в личном кабинете.
  2. В названии файла введите корректное название лекции и вашу фамилию и имя.
  3. Зайдите в “Настройки доступа” и выберите доступ “Просматривать могут все в Интернете, у кого есть ссылка”. Ссылка на инструкцию Как предоставить доступ к файлам и папкам на Google Диске
  4. Скопируйте текст задания в свой Google Документ.
  5. Выполните домашнее задание, запишите ответы и приложите необходимые скриншоты и код в свой Google Документ.
  6. Для проверки домашнего задания преподавателем отправьте ссылку на ваш Google документ в личном кабинете.
  7. Любые вопросы по решению задач задавайте в чате учебной группы.

Задание 1.

Напишите регулярное выражение для проверки является ли строка IPv4 адресом.

Для тестов можно использовать файл со следующим содержимым, фильтруя вывод с помощью команды grep -E:

192.168.0.1
127.0.0.1
84.345.23.11
88.3A.56.76
224.12.76
999.999.999.999
355.255.255.257
0.0.0.0

Пришлите получившееся выражение в качестве ответа.


Задание 2.

В Вашей конфигурации Nginx скопилось много неиспользуемых сегментов и становится сложно его читать.

Используя sed удалите все пустые строки и комментарии в конфигурации Nginx.

Попробуйте сделать это одним запуском.

Файл расположен по ссылке

Пришлите получившуюся команду в качестве ответа


Задание 3.

Используя awk и ps aux соберите информацию о:

  • количестве процессов для каждого пользователя;
  • процессе с самым большим PID;
  • (дополнительное задание со звездочкой*) суммарном использовании памяти различными пользователями.

Пришлите скриншоты со скриптами и демонстрацией их работы


Дополнительные задания (со звездочкой*)

Эти задания дополнительные (не обязательные к выполнению) и никак не повлияют на получение вами зачета по этому домашнему заданию. Вы можете их выполнить, если хотите глубже и/или шире разобраться в материале.

Задание 4.

Напишите bash-скрипт который собирает информацию о системе и пишет ее в лог каждые 5 секунд.

Используемые параметры:

  • loadavg[1,5,15] средний показатель загрузки ЦПУ за последние 1 5 и 15 минут. Примечание: хранится в /proc/loadavg.
  • memfree количество свободной оперативной памяти в байтах. Примечание: используем утилиту free.
  • memtotal количество всей оперативной памяти в байтах. Примечание: используем утилиту free.
  • diskfree свободное место на диске подключенного к /. Примечание: используем утилиту df.
  • disktotal общий объем диска подключенного к /. Примечание: используем утилиту df.

Формат записи: timestamp loadavg1 loadavg5 loadavg15 memfree memtotal diskfree disktotal

Пособирайте данные в течении 5-10 минут.

Анализируя этот лог с помощью awk напишите скрипт проверки состояния системы с заданными условиями:

  • loadavg1 < 1 в течении последних 2 минут;
  • memfree / memtotal < 60% в течении последних 3 минут;
  • diskfree / disktotal < 60% в течении последних 5 минут.

Скрипт должен возвращать 0 код ответа, если все условия выполняются, и любой другой в случае невыполнения.

В консоль также необходимо выводить, какое именно из условий не выполняется.

Пришлите получившиеся скрипты в качестве ответа.


Правила приема работы

  • Код скриптов оформлен по правилам оформления кода на Bash
  • Код скриптов размещен в отдельном sh-файле на вашем Google диске
  • В личном кабинете отправлена ссылка на ваш Google документ, в котором прикреплена ссылка на ваш sh-файл с кодом скриптов и скриншоты, демонстрирующие корректную работу скриптов
  • В документе и sh-файле настроены права доступа “Просматривать могут все в Интернете, у кого есть ссылка”
  • Название документа содержит название лекции и ваши фамилию и имя

Критерии оценки

Зачет - выполнены все задания, приложен скрипт или команда, приложены соответствующие скриншоты, в выполненных заданиях нет противоречий и нарушения логики

На доработку - задание выполнено частично или не выполнено, в логике выполнения заданий есть противоречия, существенные недостатки.