Skip to content

Latest commit

 

History

History
137 lines (87 loc) · 6.45 KB

README.md

File metadata and controls

137 lines (87 loc) · 6.45 KB

Домашнее задание к занятию «Командная оболочка Bash: Практические навыки»

Цель задания

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

  • познакомитесь с командной оболочкой Bash;
  • используете синтаксис bash-скриптов;
  • узнаете, как написать скрипт в файл так, чтобы он мог выполниться с параметрами и без.

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

  1. У вас настроена виртуальная машина, контейнер или установлена гостевая ОС семейств Linux, Unix, MacOS.
  2. Установлен Bash.

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

  1. Скопируйте в свой .md-файл содержимое этого файла, исходники можно посмотреть здесь.
  2. Заполните недостающие части документа решением задач — заменяйте ???, остальное в шаблоне не меняйте, чтобы не сломать форматирование текста, подсветку синтаксиса. Вместо логов можно вставить скриншоты по желанию.
  3. Для проверки домашнего задания в личном кабинете прикрепите и отправьте ссылку на решение в виде md-файла в вашем репозитории.
  4. Любые вопросы по выполнению заданий задавайте в чате учебной группы или в разделе «Вопросы по заданию» в личном кабинете.

Дополнительные материалы

  1. Полезные ссылки для модуля «Скриптовые языки и языки разметки».

Задание 1

Есть скрипт:

a=1
b=2
c=a+b
d=$a+$b
e=$(($a+$b))

Какие значения переменным c, d, e будут присвоены? Почему?

Переменная Значение Обоснование
c ??? ???
d ??? ???
e ??? ???

Задание 2

На нашем локальном сервере упал сервис, и мы написали скрипт, который постоянно проверяет его доступность, записывая дату проверок до тех пор, пока сервис не станет доступным. После чего скрипт должен завершиться.

В скрипте допущена ошибка, из-за которой выполнение не может завершиться, при этом место на жёстком диске постоянно уменьшается. Что необходимо сделать, чтобы его исправить:

while ((1==1)
do
	curl https://localhost:4757
	if (($? != 0))
	then
		date >> curl.log
	fi
done

Ваш скрипт:

???

Задание 3

Необходимо написать скрипт, который проверяет доступность трёх IP: 192.168.0.1, 173.194.222.113, 87.250.250.242 по 80 порту и записывает результат в файл log. Проверять доступность необходимо пять раз для каждого узла.

Ваш скрипт:

???

Задание 4

Необходимо дописать скрипт из предыдущего задания так, чтобы он выполнялся до тех пор, пока один из узлов не окажется недоступным. Если любой из узлов недоступен — IP этого узла пишется в файл error, скрипт прерывается.

Ваш скрипт:

???

Задание со звёздочкой*

Это самостоятельное задание, его выполнение необязательно.


Мы хотим, чтобы у нас были красивые сообщения для коммитов в репозиторий. Для этого нужно написать локальный хук для Git, который будет проверять, что сообщение в коммите содержит код текущего задания в квадратных скобках, и количество символов в сообщении не превышает 30. Пример сообщения: [04-script-01-bash] сломал хук.

Ваш скрипт:

???

Правила приёма домашнего задания

В личном кабинете отправлена ссылка на .md-файл в вашем репозитории.

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

Зачёт:

  • выполнены все задания;
  • ответы даны в развёрнутой форме;
  • приложены соответствующие скриншоты и файлы проекта;
  • в выполненных заданиях нет противоречий и нарушения логики.

На доработку:

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

Обязательными являются задачи без звёздочки. Их выполнение необходимо для получения зачёта и диплома о профессиональной переподготовке.

Задачи со звёздочкой (*) являются дополнительными или задачами повышенной сложности. Они необязательные, но их выполнение поможет лучше разобраться в теме.