Perl для системного администрирования


Файлы узлов - часть 6


Sdatafile ="./dataoase":

Srecorcsep = "- = -\;n:

# по одной записи за один раз

print "#\n\# host file - GENERATED BY $0\n# DO NOT EDIT BY HAND!\n#\n";

while (<DATA>) {

chomp; n удаляем разделитель записей

# разбиваем на key1,value1,... bingo, хэш записей

%record = split /:\s*|\n/m;

# проверка на неверные имена узлов

if ($record{name} =" /["-.a-zA-ZO-9]/) {

warn "!!!! $record{name} содержит недопустимые для имени узла символы

пропускаем...\п";

next;

}

# проверка на неверные псевдонимы

if ($record{aliases} =" /[~-.a-zA-ZO-9\s]/) {

warn "!!!! $record{name} содержит недопустимые для псевдонима символы,

пропускаем...\п";

next;

}

# проверка на пропущенные адреса

if (! $record{address» {

warn "!!!! $record{name} не имеет IP-адреса, пропускаем...\n";

next;

}

tt проверка на одинаковые адреса

if (defined $addrs{$record{address}>) {

warn "!!!! Дублируется IP-адрес: $record{name} &

$addrs{$record{address}}, пропускаем...\n";

next:

}

else {

$addrs{$record{address}} = $record{name};

}

print "$record{address}\t$record{name} $record{aliases}\n";

}

ClOse(DATA);

Улучшение полученного файла узлов

Позаимствуем из главы 9 «Журналы» процесс анализа выполняемого преобразования. Мы можем автоматически добавить полезные заголовки, комментарии и разделители к получаемым данным. Вот как выглядит результат преобразования той же самой базы данных:

#

К host file - GENERATED BY createhosts3 » DO NOT EDIT BY HAND!

 Converted by David N. Blank-Edelman (dnb) on Sun Jun 7 00:43:24 1998

# number of hosts in the design department: 1.

ft number of hosts in the software department: 1.

# number of hosts in the IT department: 2.

# total number of hosts: 4

#

tt Owned by Cindy Coltrane (IT): west/143

if ($record->{aliases) =" /[~-.a-zA-ZO-9\s]/) {

warn "MM ". $record->{name} '.

содержит недопустимые для псевдонима символы, пропускаем,..\n";




- Начало -  - Назад -  - Вперед -



Книжный магазин