Linux и UNIX: программирование в shell. Руководство разработчика
вернуться

Тейнсли Дэвид

Шрифт:

TTY_LINE=`tty`

case $TTY_LINE in

"/dev/tty0") TERM=ibm3151 ;;

"/dev/tty2") TERM=vt220

#проверка пользователей, которым разрешен доступ к модемной линии

#

echo "This is a modem connection"

# modemf содержит регистрационные имена для допустимых пользователей

modemf=/usr/local/etc/modem.users

if [ -s $modemf ] then

user=`cat $modemf | awk '{print $1}' | grep $LOGNAME`

# если имя не содержится в файле, пользователь не допускается в систему

if [ "$USER" != "$LOGNAME" ]

then

echo "INVALID USER FOR MODEM CONNECTION"

echo " DISCONNECTING………"

sleep 1

exit 1

else

echo "modem connection allowed"

fi

fi

logger -p notice "modem line connect $TTY_LINE… $LOGNAME"

;;

*) TERM=vt220

stty erase '^h' ;;

esac

Команда logger является превосходным инструментальным средством, применяемым для регистрации информации в глобальных файлах сообщений системы.

26.6. Заключение

Благодаря использованию функции перехвата и сигналов реализуется изящное завершение выполнения сценариев. Возможность регистрации сообщений в системном журнальном файле обеспечивает пользователей и администраторов полезной информацией, облегчающей распознавание и устранение любых потенциальных проблем.

ГЛАВА 27

Небольшая коллекция сценариев

В настоящей главе содержатся примеры некоторых наиболее распространенных сценариев. Изучая их, можно заметить, что все они невелики по размеру и довольно просты. В этом и состоит преимущество использования сценариев; они не должны быть сложными и объемными, поскольку сценарии создаются с целью экономии времени пользователя.

Конечно, в состав данной главы неплохо было бы включить сценарий comet, выполняющий общую проверку баз данных. Но поскольку этот сценарий содержит более 500 строк, нецелесообразно включать его в эту небольшую книгу. Разаботка сценария comet началась еще пару лет назад. Тогда этот сценарий состоял не более чем из пяти строк. Но в ходе естественного процесса эволюции величина сценария существенно выросла. Приведем перечень сценариев, рассматриваемых в данной главе:

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 приводится здесь вовсе не для иллюстрации методики резервирования каталогов. Этот сценарий является удачным примером совместного использования настроек, общих для нескольких сценариев.

  • Читать дальше
  • 1
  • ...
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • ...

Private-Bookers - русскоязычная библиотека для чтения онлайн. Здесь удобно открывать книги с телефона и ПК, возвращаться к сохраненной странице и держать любимые произведения под рукой. Материалы добавляются пользователями; если считаете, что ваши права нарушены, воспользуйтесь формой обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • help@private-bookers.win