pingall | Сценарий, использующий записи из файла /etc/hosts для выполнения опроса всех хостов |
backup_gen | Общий сценарий резервного копирования, который загружает заданные по умолчанию настройки |
del.lines | Оболочка потокового редактора sed, выполняющая удаление строк из файлов |
access deny | Утилита, реализующая запрет доступа для определенных пользователей при выполнении регистрации |
logroll | Утилита, реализующая прокрутку журнального файла в случае, если он достигает определенного размера |
nfsdown | Утилита, реализующая быстрый метод демонтирования всех каталогов nfs |
27.1. Сценарий pingall
Еще несколько лет назад сценарий pingall представлял собой часть общего сценария отчета, который выполнялся по ночам. Этот сценарий опрашивает все хосты, записи о которых находятся в файле hosts.
Сценарий реализует просмотр файла /etc/hosts и разыскивает все строки, которые не начинаются с символа #. Затем цикл while считывает строки отфильтрованного текста. Для присваивания переменной addr значения первого поля отфильтрованного текста используется утилита awk. Затем с помощью цикла for по каждому найденному адресу отправляется запрос.
Ниже приводится сам сценарий.
$ pg pingall
#!/bin/sh
# pingall
# просмотр файла /etc/hosts и отправка запроса по каждому адресу
cat /etc/hosts | grep -v '^#' | while read LINE
do
ADDR=`awk '{print $1}'`
for MACHINE in $ADDR
do
ping -s -c1 $MACHINE
done
done
Сценарий pingall можно легко расширить и включить в него функции отчетов, связанные с другими сетевыми утилитами.
27.2. Сценарий backup_gen
Сценарий backup_gen приводится здесь вовсе не для иллюстрации методики резервирования каталогов. Этот сценарий является удачным примером совместного использования настроек, общих для нескольких сценариев.
Сценарий backup_gen предназначен для создания резервных копий. При выполнении сценария просматривается заданный по умолчанию файл конфигурации, который затем используется для резервирования системы. При желании пользователь может изменять настройки, заданные по умолчанию. Сценарий является отличным примером того, как различные сценарии могут применять одинаковые настройки или изменять их во время выполнения сценария. После запуска сценария выполняется проверка на наличие исходного файла (backup.defaults). Если этот файл не найден, сценарий завершается.
При выполнении сценария отображается заголовок экрана и настройки, заданные по умолчанию. Пользователю направляется запрос о том, требуется ли изменять какие‑либо настройки, заданные по умолчанию. Если ответ положителен, поступает запрос на ввод кода, применяемого для изменения необходимых настроек. Для ввода правильного кода пользователю предоставляются три попытки; если введен неверный код, используются настройки, заданные по умолчанию. При вводе корректного кода пользователь может изменить приведенные ниже настройки (значения, заданные по умолчанию, содержатся в квадратных скобках []):
tape device [rmt0] | Можно выбрать rmt1 и rmt3 |
mail admin when the backup has finished [yes] | Нет вариантов выбора |
type of backup [full] | Можно выбрать опцию |
normal или sybase |
Изменения настроек выполняются с помощью временных переменных. Для получения доступа к заданным по умолчанию настройкам установите курсор мыши в любом поле и нажмите клавишу [Return]. Однако следующие настройки изменять нельзя:
backup log filename code name.
Все внесенные изменения затем подтверждаются. После завершения процесса подтверждения значения временных переменных снова присваиваются исходным переменным. До завершения резервного копирования выполняется тестирование магнитной ленты. В процессе резервного копирования применяются команды find и cpio. С помощью этих команд используются переменные из файла настроек или значения новых переменных, указанные пользователем.
Далее приводится соответствующий сценарий.
$ pg backup_run
#!/bin/sh
#backup_run
#сценарий выполнения резервного копирования
#загрузка файла с конфигурационными параметрами