Skip to content

Latest commit

 

History

History
50 lines (34 loc) · 2.72 KB

File metadata and controls

50 lines (34 loc) · 2.72 KB

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

Задание 1.

Напишите регулярное выражение для проверки является ли строка IPv4 адресом.
Для тестов можно использовать файл со следующим содержимым, фильтруя вывод с помощью команды grep -E:
192.168.0.1
127.0.0.1
84.345.23.11
88.3A.56.76
224.12.76
Пришлите получившееся выражение в качестве ответа.

Ответ:

^(\d|[1-9][0-9]|1\d\d|2[0-5][0-5])\.(\d{1}|[1-9][0-9]|1\d\d|2[0-5][0-5])\.(\d{1}|[1-9][0-9]|1\d\d|2[0-5][0-5])\.(\d{1}|[1-9][0-9]|1\d\d|2[0-5][0-5])$

Задание 2.

В Вашей конфигурации Nginx скопилось много неиспользуемых сегментов и становится сложно его читать.
Используя sed удалите все пустые строки и комментарии в конфигурации Nginx.
Попробуйте сделать это одним запуском.
Файл расположен по ссылке
Пришлите получившуюся команду в качестве ответа

Ответ:

sed -i.bk '/^#.*\|^\n\| *#\|^$/d' nginx.conf

Задание 3.

Используя awk и ps aux соберите информацию о:
количестве процессов для каждого пользователя;
процессе с самым большим PID;
(дополнительное задание со звездочкой*) суммарном использовании памяти различными пользователями. Пришлите скриншоты со скриптами и демонстрацией их работы

Ответ:

ps --no-headers aux | awk '{pscount[$1] += 1} END{ for (user in pscount) {print user, pscount[user]}}' | sort -k2nr

ps aux --no-headers | awk 'BEGIN {a=0} {if ($2>a) a=$2} END {print a}'

for _user in $(ps haux | awk '{print $1}' | sort -u); do ps haux | awk -v user=${_user} '{if ($1 == user) { sum += $4}} END { print user, sum"%"; }'; done