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


Обращаем внимание на неожиданные или несанкционированные изменения - часть 6


getopt('p:c:');

die "Использование: 0 [-p <filename>|-c <fileriame>]\n"

unless ($opt_p or $opt_c):

if ($opt^.p){

die "Невозможно получить информацию о файле $opt_p:$'\n"

unless (e $opt_p);

open(F.$opt_p) or die "Невозможно открыть $opt_p:$'\r";

$d.igest = Digest: ;MD5->new-^addfile(F)->hexaigest:

ciose(F):

print $opt__p, "|", ]oin

"|$digest", "\n":

exit:

}

if ($ppt_c){

open(CFILE.$opt_c) or

die "Невозможно открыть Файл;.

wnilc (<CFILE>){

c'-.o^p:

ssavedstats = spli r(

far,, rp'.tstats = (lstat($s;ivenstars[OJ))[0 . Л9..121:

doSi:( h )

&pr unchanged (\3savudstats. Vicur: и its: a; .1)

if ("«?savedstars[1 13]"

close(CFILE):

}

sub printcharigcd {

my($saved,$cnrrent)= ®_:

print shift @{$saved).":\n";

for (my $i=0; $1 <= $(({$saved}; $!++){

if ($saved->[$i] ne $current->[$i]){

print " P\$statnames[$i]." is now ", $current->[$i ]:

print " (".$saved->[$i].")\n";


}

Изменения сетевых служб

Мы узнали, как обнаружить изменения в локальных файловых системах. Как насчет того, чтобы заметить изменения на других машинах или в службах, ими поддерживаемых? Мы уже видели способы запроса NIS и DNS в главе 5 «Службы имен TCP/IP». Не должна вызвать затруднений проверка изменений в повторяющихся запросах к этим службам. Например, можно притвориться вторичным сервером и запросить копию данных (т. е. выполнить зонную пересылку) с сервера для определенного домена, если, конечно, DNS-сервер настроен так, что позволит сделать это:

use Net::DNS;

принимает два аргумента в командной строке: первый - сервер

 имен, к которому посылается запрос, а второй - интересующий

и нас доме"

$server = new Net::DNS::Resolver.

$server-:^.ar;eservers($ARGV[C]);

ur;n+ 3 ' OERR 'Выполняется ''еррдоча.

i:c $sorver-.'Or rorst гц-.д jr,:ess (de'ired ьу(У-(-}\

for Srecord (@zone){

$record-'>pr int;




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



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