mrtglib.txt
上传用户:shbosideng
上传日期:2013-05-04
资源大小:1555k
文件大小:8k
源码类别:

SNMP编程

开发平台:

C/C++

  1. MRTGLIB(1)                     mrtg                    MRTGLIB(1)
  2. NNAAMMEE
  3.        MRTG_lib.pm - Library for MRTG and support scripts
  4. SSYYNNOOPPSSIISS
  5.         use MRTG_lib;
  6.         my ($configfile, @target_names, %globalcfg, %targetcfg);
  7.         readcfg($configfile, @target_names, %globalcfg, %targetcfg);
  8.         my (@parsed_targets);
  9.         cfgcheck(@target_names, %globalcfg, %targetcfg, @parsed_targets);
  10. DDEESSCCRRIIPPTTIIOONN
  11.        MRTG_lib is part of MRTG, the Multi Router Traffic Gra-
  12.        pher. It was separated from MRTG to allow other programs
  13.        to easily use the same config files. The main part of
  14.        MRTG_lib is the config file parser but some other funcions
  15.        are there too.
  16.        $MRTG_lib::OS
  17.            Type of OS: WIN, UNIX, VMS
  18.        $MRTG_lib::SL
  19.            _S_l_a_s_h in the current OS.
  20.        $MRTG_lib::PS
  21.            Path separator in PATH variable
  22.        "readcfg"
  23.            "readcfg($file, @targets, %globalcfg, %targetcfg [,
  24.            $prefix, %extrules])"
  25.            Reads a config file, parses it and fills some arrays
  26.            and hashes. The mandatory arguments are: the name of
  27.            the config file, a ref to an array which will be
  28.            filled with a list of the target names, a hashref for
  29.            the global configuration, a hashref for the target
  30.            configuration.
  31.            The configuration file syntax is:
  32.             globaloption: value
  33.             targetoption[targetname]: value
  34.             aprefix*extglobal: value
  35.             aprefix*exttarget[target2]: value
  36.            E.g.
  37.             workdir: /var/stat/mrtg
  38.             target[router1]: 2:public@router1.local.net
  39.             14all*columns: 2
  40.            The global config hash has the structure
  41.             $globalcfg{configoption} = 'value'
  42.            The target config hash has the structure
  43.             $targetcfg{configoption}{targetname} = 'value'
  44.            See mrtg-reference for more information about the MRTG
  45.            configuration syntax.
  46.            "readcfg" can take two additional arguments to extend
  47.            the config file syntax. This allows programs to put
  48.            their configuration into the mrtg config file. The
  49.            fifth argument is the prefix of the extension, the
  50.            sixth argument is a hash with the checkrules for these
  51.            extension settings. E.g. if the prefix is "14all"
  52.            "readcfg" will check config lines that begin with
  53.            "14all*", i.e. all lines like
  54.             14all*columns: 2
  55.             14all*graphsize[target3]: 500 200
  56.            against the rules in %extrules. The format of this
  57.            hash is:
  58.             $extrules{option} = [sub{$_[0] =~ m/^d+$/}, sub{"Error message for $_[0]"}]
  59.                 i.e.
  60.             $extrules{option}[0] -> a test expression
  61.             $extrules{option}[1] -> error message if test fails
  62.            The first part of the array is a perl expression to
  63.            test the value of the option. The test can access this
  64.            value in the variable "$arg". The second part of the
  65.            array is an error message to display when the test
  66.            fails. The failed value can be integrated by using the
  67.            variable "$arg".
  68.            Config settings with an different prefix than the one
  69.            given in the "readcfg" call are not checked but
  70.            inserted into _%_g_l_o_b_a_l_c_f_g and _%_t_a_r_g_e_t_c_f_g.  Prefixed
  71.            settings keep their prefix in the config hashes:
  72.             $targetcfg{'14all*graphsize'}{'target3'} = '500 200'
  73.        "cfgcheck"
  74.            "cfgcheck(@target_names, %globalcfg, %targetcfg,
  75.            @parsed_targets)"
  76.            Checks the configuration read by "readcfg". Checks the
  77.            values in the config for syntactical and/or semantical
  78.            errors. Sets defaults for some options.  Parses the
  79.            "target[...]" options and filles the array
  80.            @parsed_targets ready for mrtg functions.
  81.            The first three arguments are the same as for "read-
  82.            cfg". The fourth argument is an arrayref which will be
  83.            filled with the parsed target defs.
  84.            "cfgcheck" converts the values of target settings
  85.            _o_p_t_i_o_n_s, e.g.
  86.             options[router1]: bits, growright
  87.            to a hash:
  88.             $targetcfg{'option'}{'bits'}{'router1'} = 1
  89.             $targetcfg{'option'}{'growright'}{'router1'} = 1
  90.            This is not done by "readcfg" so if you don't use
  91.            "cfgcheck" you have to check the scalar variable _$_t_a_r_-
  92.            _g_e_t_c_f_g_{_'_o_p_t_i_o_n_'_}_{_'_r_o_u_t_e_r_1_'_} (MRTG allows options to be
  93.            separated by space or ',').
  94.        "ensureSL"
  95.            "ensureSL($pathname)"
  96.            Checks that the _p_a_t_h_n_a_m_e does not contain double path
  97.            separators and ends with a path separator. It uses
  98.            $MRTG_lib::SL as path separator which will be / or 
  99.            depending on the OS.
  100.        "log2rrd"
  101.            "log2rrd ($router,%globalcfg,%targetcfg)"
  102.            Convert log file to rrd format. Needs rrdtool.
  103.        "datestr"
  104.            "datestr(time)"
  105.            Returns the time given in the argument as a nicely
  106.            formated date string.  The argument has to be in UNIX
  107.            time format (seconds since 1970-1-1).
  108.        "timestamp"
  109.            "timestamp()"
  110.            Return a string representing the current time.
  111.        "setup_loghandlers"
  112.            "setup_loghandlers(filename)"
  113.            Install signalhandlers for __DIE__ and __WARN__ making
  114.            the errors go the the specified destination. If file-
  115.            name is 'eventlog' mrtg will log to the windows event
  116.            logger.
  117.        "expistr"
  118.            "expistr(time)"
  119.            Returns the time given in the argument formatted suit-
  120.            able for HTTP Expire-Headers.
  121.        "create_pid"
  122.            "create_pid()"
  123.            Creates a pid file for the mrtg daemon
  124.        "demonize_me"
  125.            "demonize_me()"
  126.            Puts the running program into background, detaching it
  127.            from the terminal.
  128.        "populatecache"
  129.            "populatecache(%confcache, $host, $reread, $snmpopt-
  130.            shash)"
  131.            Reads the SNMP variables _i_f_D_e_s_c_r, _i_p_A_d_E_n_t_I_f_I_n_d_e_x,
  132.            _i_f_P_h_y_s_A_d_d_r_e_s_s, _i_f_N_a_m_e from the _h_o_s_t and stores the
  133.            values in _%_c_o_n_f_c_a_c_h_e as follows:
  134.             $confcache{$host}{'Descr'}{ifDescr}{oid} = (ifDescr or 'Dup')
  135.             $confcache{$host}{'IP'}{ipAdEntIfIndex}{oid} = (ipAdEntIfIndex or 'Dup')
  136.             $confcache{$host}{'Eth'}{ifPhysAddress}{oid} = (ifPhysAddress or 'Dup')
  137.             $confcache{$host}{'Name'}{ifName}{oid} = (ifName or 'Dup')
  138.             $confcache{$host}{'Type'}{ifType}{oid} = (ifType or 'Dup')
  139.            The value (at the right side of =) is 'Dup' if a value
  140.            was retrieved muliple times, the retrieved value else.
  141.        "readconfcache"
  142.            "my $confcache = readconfcache($file)"
  143.            Preload the confcache from a file.
  144.        "readfromconfcache"
  145.            "writeconfcache($confcache,$file)"
  146.            Store the current confcache into a file.
  147.        "writeconfcache"
  148.            "writeconfcache($confcache,$file)"
  149.            Store the current confcache into a file.
  150.        "storeincache"
  151.            "storeincache($confcache,$host,$method,$key,$value)"
  152.        "readfromcache"
  153.            "readfromcache($confcache,$host,$method,$key)"
  154.        "clearfromcache"
  155.            "clearfromcache($confcache,$host)"
  156.        "debug"
  157.            "debug($type, $message)"
  158.            Prints the _m_e_s_s_a_g_e on STDERR if debugging is enabled
  159.            for type _t_y_p_e.  A debug type is enabled if _t_y_p_e is in
  160.            array @main::DEBUG.
  161. AAUUTTHHOORRSS
  162.        Rainer Bawidamann <Rainer.Bawidamann@rz.uni-ulm.de>
  163.        (This Manpage)
  164. 2.13.2                      2006-02-03                 MRTGLIB(1)