Red Hat System Administration II 8.2
В этом упражнении вы будете использовать циклы для вывода имени хоста с нескольких серверов.
Результаты
Вы сможете создать цикл for для перебора элементов списка из командной строки и в сценарии командной оболочки.
Войдите на workstation
как пользователь student
с паролем student
.
На workstation
выполните команду lab console-commands start. Эта команда запускает подготовительный сценарий, который проверяет доступность хостов servera
и serverb
в сети. Сценарий выдаст предупреждение, если они недоступны.
[student@workstation ~]$
lab console-commands start
С помощью команд ssh и hostname отправьте имена хостов
servera
иserverb
в стандартный поток вывода.[student@workstation ~]$
ssh student@servera hostname
servera.lab.example.com[student@workstation ~]$
ssh student@serverb hostname
serverb.lab.example.comСоздайте цикл for для более эффективного выполнения этой же задачи.
[student@workstation ~]$
for HOST in servera serverb do ssh student@${HOST} hostname done
servera.lab.example.com serverb.lab.example.comСоздайте сценарий командной оболочки для выполнения этого же цикла for.
Создайте каталог
/home/student/bin
для сценария командной оболочки.[student@workstation ~]$
mkdir ~/bin
Убедитесь, что созданный каталог есть в вашей переменной среды
PATH
.[student@workstation ~]$
echo $PATH
/home/student/.local/bin:/home/student/bin::/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbinСоздайте в
/home/student/bin/printhostname.sh
сценарий командной оболочки для выполнения цикла for. С помощью команды cat проверьте содержимое файлаprinthostname.sh
.[student@workstation ~]$
vim ~/bin/printhostname.sh
[student@workstation ~]$
cat ~/bin/printhostname.sh
#!/bin/bash #Execute for loop to print server hostname. for HOST in servera serverb do ssh student@${HOST} hostname done exit 0Убедитесь, что созданный сценарий является исполняемым.
[student@workstation ~]$
chmod +x ~/bin/printhostname.sh
Запустите сценарий из домашнего каталога.
[student@workstation ~]$
printhostname.sh
servera.lab.example.com serverb.lab.example.comУбедитесь, что код завершения сценария ― 0.
[student@workstation ~]$
echo $?
0