рдЕрдВрдЧреНрд░реЗрдЬрд╝реАрдлреНрд░реЗрдВрдЪрд╕реНрдкреЗрдирд┐рд╢

рдСрдирд╡рд░реНрдХреНрд╕ рдлрд╝реЗрд╡рд┐рдХреЙрди

mrtglib - рдХреНрд▓рд╛рдЙрдб рдореЗрдВ рдСрдирд▓рд╛рдЗрди

рдЙрдмрдВрдЯреВ рдСрдирд▓рд╛рдЗрди, рдлреЗрдбреЛрд░рд╛ рдСрдирд▓рд╛рдЗрди, рд╡рд┐рдВрдбреЛрдЬ рдСрдирд▓рд╛рдЗрди рдПрдореБрд▓реЗрдЯрд░ рдпрд╛ рдореИрдХ рдУрдПрд╕ рдСрдирд▓рд╛рдЗрди рдПрдореБрд▓реЗрдЯрд░ рдкрд░ рдСрдирд╡рд░реНрдХреНрд╕ рдореБрдлреНрдд рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдкреНрд░рджрд╛рддрд╛ рдореЗрдВ рдПрдордЖрд░рдЯреАрдЧреНрд▓рд┐рдм рдЪрд▓рд╛рдПрдВ

рдпрд╣ рдХрдорд╛рдВрдб mrtglib рд╣реИ рдЬрд┐рд╕реЗ рд╣рдорд╛рд░реЗ рдХрдИ рдореБрдлреНрдд рдСрдирд▓рд╛рдЗрди рд╡рд░реНрдХрд╕реНрдЯреЗрд╢рди рдЬреИрд╕реЗ рдЙрдмрдВрдЯреВ рдСрдирд▓рд╛рдЗрди, рдлреЗрдбреЛрд░рд╛ рдСрдирд▓рд╛рдЗрди, рд╡рд┐рдВрдбреЛрдЬ рдСрдирд▓рд╛рдЗрди рдПрдореБрд▓реЗрдЯрд░ рдпрд╛ рдореИрдХ рдУрдПрд╕ рдСрдирд▓рд╛рдЗрди рдПрдореБрд▓реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдСрдирд╡рд░реНрдХреНрд╕ рдлреНрд░реА рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдкреНрд░рджрд╛рддрд╛ рдореЗрдВ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдХрд╛рд░реНрдпрдХреНрд░рдо:

рдирд╛рдо


MRTG_lib.pm - MRTG рдФрд░ рд╕рдорд░реНрдерди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрдмреНрд░реЗрд░реА

SYNOPSIS


MRTG_lib рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ;
рдореЗрд░рд╛ ($configfile, @target_names, %globalcfg, %targetcfg);
readcfg($configfile, \@target_names, \%globalcfg, \%targetcfg);
рдореЗрд░рд╛ (@parsed_targets);
cfgcheck(\@target_names, \%globalcfg, \%targetcfg, \@parsed_targets);

рд╡рд░реНрдгрди


MRTG_lib рдорд▓реНрдЯреА рд░рд╛рдЙрдЯрд░ рдЯреНрд░реИрдлрд┐рдХ рдЧреНрд░рд╛рдлрд░ MRTG рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред рдЗрд╕реЗ рдПрдордЖрд░рдЯреАрдЬреА рд╕реЗ рдЕрд▓рдЧ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛
рдЕрдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдореЛрдВ рдХреЛ рд╕рдорд╛рди рдХреЙрдиреНрдлрд╝рд┐рдЧ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЖрд╕рд╛рдиреА рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВред MRTG_lib рдХрд╛ рдореБрдЦреНрдп рднрд╛рдЧ рд╣реИ
рдХреЙрдиреНрдлрд╝рд┐рдЧ рдлрд╝рд╛рдЗрд▓ рдкрд╛рд░реНрд╕рд░ рд▓реЗрдХрд┐рди рдХреБрдЫ рдЕрдиреНрдп рдлрд╝рдВрдХреНрд╢рдВрд╕ рднреА рд╣реИрдВред

$MRTG_lib::OS
рдУрдПрд╕ рдХрд╛ рдкреНрд░рдХрд╛рд░: рд╡рд┐рди, рдпреВрдирд┐рдХреНрд╕, рд╡реАрдПрдордПрд╕

$MRTG_lib::SL
рд╕реНрд▓реИрд╢ рд╡рд░реНрддрдорд╛рди рдУрдПрд╕ рдореЗрдВ.

$MRTG_lib::PS
PATH рд╡реЗрд░рд┐рдПрдмрд▓ рдореЗрдВ рдкрде рд╡рд┐рднрд╛рдЬрдХ

"рд░реАрдбрд╕реАрдПрдлрдЬреА"
"readcfg($file, \@targets, \%globalcfg, \%targetcfg [, $prefix, \%extrules])"

рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрдврд╝рддрд╛ рд╣реИ, рдЙрд╕реЗ рдкрд╛рд░реНрд╕ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреБрдЫ рдРрд░реЗ рдФрд░ рд╣реИрд╢ рднрд░рддрд╛ рд╣реИред рдЕрдирд┐рд╡рд╛рд░реНрдп
рддрд░реНрдХ рд╣реИрдВ: рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо, рдПрдХ рд╕рд░рдгреА рдХрд╛ рд╕рдВрджрд░реНрдн рдЬреЛ рднрд░рд╛ рдЬрд╛рдПрдЧрд╛
рд▓рдХреНрд╖реНрдп рдирд╛рдореЛрдВ рдХреА рд╕реВрдЪреА рдХреЗ рд╕рд╛рде, рд╡реИрд╢реНрд╡рд┐рдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реИрд╢рд░реЗрдл, рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реИрд╢рд░реЗрдл
рд▓рдХреНрд╖реНрдп рд╡рд┐рдиреНрдпрд╛рд╕.

рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣реИ:

рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд┐рдХрд▓реНрдк: рдореВрд▓реНрдп
рд▓рдХреНрд╖реНрдпрд╡рд┐рдХрд▓реНрдк[рд▓рдХреНрд╖реНрдпрдирд╛рдо]: рдорд╛рди
aprefix*extglobal: рдорд╛рди
aprefix*exttarget[target2]: рдорд╛рди

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП

рдХрд╛рд░реНрдпрджрд┐рд░: /var/stat/mrtg
рд▓рдХреНрд╖реНрдп[рд░рд╛рдЙрдЯрд░1]: 2:[рдИрдореЗрд▓ рд╕рдВрд░рдХреНрд╖рд┐рдд]
14рд╕рднреА*рдХреЙрд▓рдо: 2

рд╡реИрд╢реНрд╡рд┐рдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реИрд╢ рдХреА рд╕рдВрд░рдЪрдирд╛ рд╣реИ

$globalcfg{configoption} = 'рдореВрд▓реНрдп'

рд▓рдХреНрд╖реНрдп рдХреЙрдиреНрдлрд┐рдЧ рд╣реИрд╢ рдХреА рд╕рдВрд░рдЪрдирд╛ рд╣реИ

$targetcfg{configoption}{targetname} = 'рдорд╛рди'

рдПрдордЖрд░рдЯреАрдЬреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдПрдордЖрд░рдЯреАрдЬреА-рд╕рдВрджрд░реНрдн рджреЗрдЦреЗрдВред

рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "readcfg" рджреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рддрд░реНрдХ рд▓реЗ рд╕рдХрддрд╛ рд╣реИред рдпрд╣
рдкреНрд░реЛрдЧреНрд░рд╛рдореЛрдВ рдХреЛ рдЕрдкрдиреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ mrtg рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдкрд╛рдВрдЪрд╡рд╛
рддрд░реНрдХ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдЙрдкрд╕рд░реНрдЧ рд╣реИ, рдЫрдард╛ рддрд░реНрдХ рдЗрд╕рдХреЗ рд╕рд╛рде рдПрдХ рд╣реИрд╢ рд╣реИ
рдЗрди рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдирд┐рдпрдоред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрджрд┐ рдЙрдкрд╕рд░реНрдЧ "14all" рд╣реИ рддреЛ "readcfg" рд╣реЛрдЧрд╛
рдЙрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ рдЬреЛ "14all*" рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИрдВ, рдЕрд░реНрдерд╛рдд рд╕рднреА рдкрдВрдХреНрддрд┐рдпрд╛рдБ

14рд╕рднреА*рдХреЙрд▓рдо: 2
14рд╕рднреА*рдЧреНрд░рд╛рдлрдЖрдХрд╛рд░[рд▓рдХреНрд╖реНрдп3]: 500 200

%extrules рдореЗрдВ рдирд┐рдпрдореЛрдВ рдХреЗ рд╡рд┐рд░реБрджреНрдзред рдЗрд╕ рд╣реИрд╢ рдХрд╛ рдкреНрд░рд╛рд░реВрдк рд╣реИ:

$extrules{option} = [sub{$_[0] =~ m/^\d+$/}, рдЙрдк{"$_[0] рдХреЗ рд▓рд┐рдП рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢"}]
рдпрд╛рдиреА
$extrules{option}[0] -> рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐
$extrules{option}[1] -> рдпрджрд┐ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢

рд╡рд┐рдХрд▓реНрдк рдХреЗ рдореВрд▓реНрдп рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░рдгреА рдХрд╛ рдкрд╣рд▓рд╛ рднрд╛рдЧ рдПрдХ рдкрд░реНрд▓ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣реИред
рдкрд░реАрдХреНрд╖рдг рдЗрд╕ рдорд╛рди рдХреЛ рд╡реЗрд░рд┐рдПрдмрд▓ "$arg" рдореЗрдВ рдПрдХреНрд╕реЗрд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╕рд╛рд░рдгреА рдХрд╛ рджреВрд╕рд░рд╛ рднрд╛рдЧ рдПрдХ рд╣реИ
рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ред рд╡рд┐рдлрд▓ рдорд╛рди рдХреЛ рдЗрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдПрдХреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рд╡реЗрд░рд┐рдПрдмрд▓ "$arg" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред

"рд░реАрдбрд╕реАрдПрдлрдЬреА" рдХреЙрд▓ рдореЗрдВ рджрд┐рдП рдЧрдП рдЙрдкрд╕рд░реНрдЧ рд╕реЗ рднрд┐рдиреНрди рдЙрдкрд╕рд░реНрдЧ рдХреЗ рд╕рд╛рде рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╣реИрдВ
рдЪреЗрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд▓реЗрдХрд┐рди рдбрд╛рд▓рд╛ рдЧрдпрд╛ % рд╡реИрд╢реНрд╡рд┐рдХ рд╕реАрдПрдлрдЬреА рдФрд░ %targetcfg. рдкреНрд░реАрдлрд╝рд┐рдХреНрд╕реНрдб рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдЙрдиреНрд╣реЗрдВ рдмрдирд╛рдП рд░рдЦрддреА рд╣реИрдВ
рдХреЙрдиреНрдлрд┐рдЧ рд╣реИрд╢ рдореЗрдВ рдЙрдкрд╕рд░реНрдЧ:

$targetcfg{'14all*graphsize'}{'target3'} = '500 200'

"рд╕реАрдПрдлрдЬреАрдЪреЗрдХ"
"cfgcheck(\@target_names, \%globalcfg, \%targetcfg, \@parsed_targets)"

"readcfg" рджреНрд╡рд╛рд░рд╛ рдкрдврд╝реЗ рдЧрдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИред рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдорд╛рдиреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИ
рд╡рд╛рдХреНрдпрд╛рддреНрдордХ рдФрд░/рдпрд╛ рд╢рдмреНрджрд╛рд░реНрде рд╕рдВрдмрдВрдзреА рддреНрд░реБрдЯрд┐рдпрд╛рдБред рдХреБрдЫ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред рдкрд╛рд░реНрд╕ рдХрд░рддрд╛ рд╣реИ
"рд▓рдХреНрд╖реНрдп[...]" рд╡рд┐рдХрд▓реНрдк рдФрд░ mrtg рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ @parsed_targets рд╕рд░рдгреА рдХреЛ рднрд░рддрд╛ рд╣реИред

рдкрд╣рд▓реЗ рддреАрди рддрд░реНрдХ "readcfg" рдХреЗ рд╕рдорд╛рди рд╣реИрдВред рдЪреМрдерд╛ рддрд░реНрдХ рдПрдХ рд╣реИ
arrayref рдЬреЛ рдкрд╛рд░реНрд╕ рдХрд┐рдП рдЧрдП рд▓рдХреНрд╖реНрдп defs рд╕реЗ рднрд░рд╛ рдЬрд╛рдПрдЧрд╛ред

"cfgcheck" рд▓рдХреНрд╖реНрдп рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рдорд╛рдиреЛрдВ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИ рд╡рд┐рдХрд▓реНрдкреЛрдВ, рдЙрджрд╛

рд╡рд┐рдХрд▓реНрдк[рд░рд╛рдЙрдЯрд░1]: рдмрд┐рдЯреНрд╕, рдЧреНрд░реЛрд░рд╛рдЗрдЯ

рдПрдХ рд╣реИрд╢ рдХреЗ рд▓рд┐рдП:

$targetcfg{'option'}{'bits'}{'router1'} = 1
$targetcfg{'option'}{'growright'}{'router1'} = 1

рдпрд╣ "рд░реАрдбрд╕реАрдПрдлрдЬреА" рджреНрд╡рд╛рд░рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк "рд╕реАрдПрдлрдЬреАрдЪреЗрдХ" рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рдЗрд╕рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреА рд╣реЛрдЧреА
рдЕрджрд┐рд╢ рдЪрд░ $targetcfg{'option'}{'router1'} (рдПрдордЖрд░рдЯреАрдЬреА рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ
рд╕реНрдерд╛рди рдпрд╛ ',') рджреНрд╡рд╛рд░рд╛ред

"рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ"
"рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВSL(\$рдкрдердирд╛рдо)"

рдЬрд╛рдБрдЪрддрд╛ рд╣реИ рдХрд┐ рдкрде рдирд╛рдо рдЗрд╕рдореЗрдВ рджреЛрд╣рд░реЗ рдкрде рд╡рд┐рднрд╛рдЬрдХ рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рдПрдХ рдкрде рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ
рд╡рд┐рднрд╛рдЬрдХ. рдпрд╣ рдкрде рд╡рд┐рднрд╛рдЬрдХ рдХреЗ рд░реВрдк рдореЗрдВ $MRTG_lib::SL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬреЛ / рдпрд╛ \ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░реЗрдЧрд╛
рдУрдПрд╕ред

"рд▓реЙрдЧ2рдЖрд░рдЖрд░рдбреА"
"log2rrd ($рд░рд╛рдЙрдЯрд░,\%рдЧреНрд▓реЛрдмрд▓cfg,\%targetcfg)"

рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЖрд░рдЖрд░рдбреА рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдмрджрд▓реЗрдВред rrdtool рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ.

"рдбреЗрдЯреЗрд╕реНрдЯреНрд░"
"рджрд┐рдирд╛рдВрдХ(рд╕рдордп)"

рддрд░реНрдХ рдореЗрдВ рджрд┐рдП рдЧрдП рд╕рдордп рдХреЛ рдПрдХ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рддреИрдпрд╛рд░ рдХреА рдЧрдИ рджрд┐рдирд╛рдВрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рддрд░реНрдХ
UNIX рд╕рдордп рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (1970-1-1 рд╕реЗ рд╕реЗрдХрдВрдб)ред

"рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк"
"рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк()"

рд╡рд░реНрддрдорд╛рди рд╕рдордп рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реМрдЯрд╛рдПрдБред

"setup_loghandlers"
"setup_loghandlers(рдлрд╝рд╛рдЗрд▓ рдирд╛рдо)"

рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП __DIE__ рдФрд░ __WARN__ рдХреЗ рд▓рд┐рдП рд╕рд┐рдЧреНрдирд▓рд╣реИрдВрдбрд▓рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
рдЧрдВрддрд╡реНрдпред рдпрджрд┐ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо 'рдЗрд╡реЗрдВрдЯрд▓реЙрдЧ' рд╣реИ рддреЛ рдПрдордЖрд░рдЯреАрдЬреА рд╡рд┐рдВрдбреЛрдЬрд╝ рдЗрд╡реЗрдВрдЯ рд▓реЙрдЧрд░ рдкрд░ рд▓реЙрдЧ рдЗрди рдХрд░реЗрдЧрд╛ред

"expistr"
"expistr(рд╕рдордп)"

HTTP рдПрдХреНрд╕рдкрд╛рдпрд░-рд╣реЗрдбрд░ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╕реНрд╡рд░реВрдкрд┐рдд рддрд░реНрдХ рдореЗрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╕рдордп рд▓реМрдЯрд╛рддрд╛ рд╣реИред

"create_pid"
"create_pid()"

mrtg рдбреЗрдореЙрди рдХреЗ рд▓рд┐рдП рдПрдХ pid рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реИ

"рдореБрдЭреЗ рд╢реИрддрд╛рди рдмрдирд╛рдУ"
"рджрд╛рдирд╡_рдореБрдЭреЗ()"

рдЪрд▓ рд░рд╣реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдЯрд░реНрдорд┐рдирд▓ рд╕реЗ рдЕрд▓рдЧ рдХрд░рдХреЗ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдореЗрдВ рд░рдЦ рджреЗрддрд╛ рд╣реИред

"рдЖрдмрд╛рджреА рдХреИрд╢"
"populatorcache(\%confcache, $host, $reread, $snmpoptshash)"

рдПрд╕рдПрдирдПрдордкреА рдЪрд░ рдкрдврд╝рддрд╛ рд╣реИ ifDescr, ipAdEntIfIndex, ifPhysAddress, рдпрджрд┐рдирд╛рдо рд╕реЗ рдореЗрдЬрдмрд╛рди
рдФрд░ рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ %confcache рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

$confcache{$host}{'Descr'}{ifDescr}{oid} = (ifDescr рдпрд╛ 'Dup')
$confcache{$host}{'IP'}{ipAdEntIfIndex}{oid} = (ipAdEntIfIndex рдпрд╛ 'Dup')
$confcache{$host}{'Eth'}{ifPhysAddress}{oid} = (ifPhysAddress рдпрд╛ 'Dup')
$confcache{$host}{'Name'}{ifName}{oid} = (ifName рдпрд╛ 'Dup')
$confcache{$host}{'Type'}{ifType}{oid} = (ifType рдпрд╛ 'Dup')

рдпрджрд┐ рдХреЛрдИ рдорд╛рди рдХрдИ рдмрд╛рд░ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдорд╛рди (= рдХреЗ рджрд╛рдИрдВ рдУрд░) 'рдбреБрдк' рд╣реИ,
рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдореВрд▓реНрдп рдЕрдиреНрдпрдерд╛ред

"readconfcache"
"рдореЗрд░рд╛ $confcache = readconfcache($рдлрд╝рд╛рдЗрд▓)"

рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рд╕реЗ confcache рдХреЛ рдкреНрд░реАрд▓реЛрдб рдХрд░реЗрдВред

"readfromconfcache"
"writeconfcache($confcache,$рдлрд╝рд╛рдЗрд▓)"

рд╡рд░реНрддрдорд╛рди confcache рдХреЛ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдВред

"writeconfcache"
"writeconfcache($confcache,$рдлрд╝рд╛рдЗрд▓)"

рд╡рд░реНрддрдорд╛рди confcache рдХреЛ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдВред

"рд╕реНрдЯреЛрд░рдЗрдирдХреИрд╢"
"storeincache($confcache,$host,$рд╡рд┐рдзрд┐,$рдХреБрдВрдЬреА,$рдореВрд▓реНрдп)"

"рдХреИрд╢ рд╕реЗ рдкрдврд╝реЗрдВ"
"readfromcache($confcache,$host,$method,$key)"

"рдХреИрд╢ рд╕рд╛рдлрд╝ рдХрд░реЗрдВ"
"clearfromcache($confcache,$host)"

"рдбреАрдмрдЧ"
"рдбреАрдмрдЧ ($ рдкреНрд░рдХрд╛рд░, $ рд╕рдВрджреЗрд╢)"

рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИ message рдпрджрд┐ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдбрд┐рдмрдЧрд┐рдВрдЧ рд╕рдХреНрд╖рдо рд╣реИ рддреЛ STDERR рдкрд░ рдЯрд╛рдЗрдк. рдПрдХ рдбрд┐рдмрдЧ рдкреНрд░рдХрд╛рд░ рд╣реИ
рд╕рдХреНрд╖рдо рдпрджрд┐ рдЯрд╛рдЗрдк рд╕рд░рдгреА @main::DEBUG рдореЗрдВ рд╣реИред

рд▓реЗрдЦрдХ


рд░реЗрдирд░ рдмрд╛рд╡рд┐рдбрдореИрди[рдИрдореЗрд▓ рд╕рдВрд░рдХреНрд╖рд┐рдд]>

(рдпрд╣ рдореИрдирдкреЗрдЬ)

onworks.net рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдСрдирд▓рд╛рдЗрди mrtglib рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ


рдлреНрд░реА рд╕рд░реНрд╡рд░ рдФрд░ рд╡рд░реНрдХрд╕реНрдЯреЗрд╢рди

рд╡рд┐рдВрдбреЛрдЬ рдФрд░ рд▓рд╛рдЗрдиреЗрдХреНрд╕ рдПрдк рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ

рд▓рд┐рдирдХреНрд╕ рдХрдорд╛рдВрдб

Ad