В результате выполнения задания вы:
- познакомитесь с командной оболочкой Bash;
- используете синтаксис bash-скриптов;
- узнаете, как написать скрипт в файл так, чтобы он мог выполниться с параметрами и без.
- У вас настроена виртуальная машина, контейнер или установлена гостевая ОС семейств Linux, Unix, MacOS.
- Установлен Bash.
- Скопируйте в свой .md-файл содержимое этого файла, исходники можно посмотреть здесь.
- Заполните недостающие части документа решением задач — заменяйте
???
, остальное в шаблоне не меняйте, чтобы не сломать форматирование текста, подсветку синтаксиса. Вместо логов можно вставить скриншоты по желанию. - Для проверки домашнего задания в личном кабинете прикрепите и отправьте ссылку на решение в виде md-файла в вашем репозитории.
- Любые вопросы по выполнению заданий задавайте в чате учебной группы или в разделе «Вопросы по заданию» в личном кабинете.
Есть скрипт:
a=1
b=2
c=a+b
d=$a+$b
e=$(($a+$b))
Какие значения переменным c, d, e будут присвоены? Почему?
Переменная | Значение | Обоснование |
---|---|---|
c |
??? | ??? |
d |
??? | ??? |
e |
??? | ??? |
На нашем локальном сервере упал сервис, и мы написали скрипт, который постоянно проверяет его доступность, записывая дату проверок до тех пор, пока сервис не станет доступным. После чего скрипт должен завершиться.
В скрипте допущена ошибка, из-за которой выполнение не может завершиться, при этом место на жёстком диске постоянно уменьшается. Что необходимо сделать, чтобы его исправить:
while ((1==1)
do
curl https://localhost:4757
if (($? != 0))
then
date >> curl.log
fi
done
???
Необходимо написать скрипт, который проверяет доступность трёх IP: 192.168.0.1
, 173.194.222.113
, 87.250.250.242
по 80
порту и записывает результат в файл log
. Проверять доступность необходимо пять раз для каждого узла.
???
Необходимо дописать скрипт из предыдущего задания так, чтобы он выполнялся до тех пор, пока один из узлов не окажется недоступным. Если любой из узлов недоступен — IP этого узла пишется в файл error, скрипт прерывается.
???
Это самостоятельное задание, его выполнение необязательно.
Мы хотим, чтобы у нас были красивые сообщения для коммитов в репозиторий. Для этого нужно написать локальный хук для Git, который будет проверять, что сообщение в коммите содержит код текущего задания в квадратных скобках, и количество символов в сообщении не превышает 30. Пример сообщения: [04-script-01-bash] сломал хук.
???
В личном кабинете отправлена ссылка на .md-файл в вашем репозитории.
Зачёт:
- выполнены все задания;
- ответы даны в развёрнутой форме;
- приложены соответствующие скриншоты и файлы проекта;
- в выполненных заданиях нет противоречий и нарушения логики.
На доработку:
- задание выполнено частично или не выполнено вообще;
- в логике выполнения заданий есть противоречия и существенные недостатки.
Обязательными являются задачи без звёздочки. Их выполнение необходимо для получения зачёта и диплома о профессиональной переподготовке.
Задачи со звёздочкой (*) являются дополнительными или задачами повышенной сложности. Они необязательные, но их выполнение поможет лучше разобраться в теме.