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


Создание системы учетных записей для работы с пользователями - часть 30


use Account; И только чтобы найти файлы use XML::Simple:

&InitAccount;

SReadMainDatabase:

&WriteFiles:

open(MAIN,Saccountdir.Smaindata) or

die "Unauie to open ".Saccountdir.$maindata "-$'\r";

read (MAIN, Sdbcontents. -s MAIN);

ciose(MAIN): Smaindb = XMLin("<maindb>

".Sdbcontents." /maincm>",

keyattr -> [""]):

}

 обходим в цикле списки, собираем списки учетных записей

определенного типа и сохраняем им в хэше списков. Затем

записываем содержимое каждого ключа в отдельный файл.

sub WriteFiles {

foreach my Saccount (@{$niaindb->{account}}){

next if $account->{status}

eq "deleted"; push(@{$types{$account->{type}}},

$account->{login}); }

foreach $type (keys %types){

open(OUT,">".Smalllists.Stype) or die "Unable to write to

".Saccountdir.$maillists.$type.": $!\n";

print OUT ]0in("\n",sort @{$types{$type}})."\n"; close(OUT);

}

}

Если посмотреть в каталог списков рассылки, то можно увидеть:

> dir

faculty staff

Каждый из этих файлов содержит соответствующий список учетных записей пользователей.

Система учетных записей. Заключение

Рассмотрев все четыре компонента системы учетных записей, подведем итоги и поговорим о том, что было пропущено (в узком, а не в широком смысле):

Проверка ошибок

В нашей демонстрационной программе выполняется проверка лишь небольшого числа ошибок. Любая уважающая себя система учетных записей увеличивается на 40-50% в объеме из-за проверки ошибок на каждом шаге своего выполнения.

Масштабируемость

Наша программа, скорее всего, сможет работать на мелких и средних системах. Но каждый раз, когда встречается фраза «прочитать весь файл в память», это должно звучать для вас предупреждением.

Чтобы повысить масштабируемость, нужно по крайней мере изменить способ получения и хранилище данных. Модуль XML : : Twig Мишеля Родригеса (Michel Rodriguez) может разрешить эту проблему, т. к. он работает с большими XML-документами, не считывая их при этом целиком в память.




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



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