mib2c.conf man page on Mageia

Man page or keyword search:  
man Server   17783 pages
apropos Keyword Search (all sections)
Output format
Mageia logo
[printable version]

MIB2C.CONF(5)			   Net-SNMP			 MIB2C.CONF(5)

NAME
       mib2c.conf  — How to write mib2c.conf files to do ANYTHING based on MIB
       input.

SYNOPSIS
       % cat > mib2c.test.conf	<< EOF @foreach $t table@
	 Starting table $t
	 @foreach $c column@
	   echo $t has column $c which has a syntax of $c.syntax
	 @end@

       @end@ EOF

       % mib2c -c mib2c.test.conf internet

DESCRIPTION
       The mib2c.conf script language is a MIB-particular language designed to
       easily  process	MIB  nodes in ways that you want.  mib2c is a misnomer
       (for historical purposes), because you can produce anything (not just C
       code).	Look  in the Net-SNMP "local" directory for a bunch of example
       mib2c.*.conf files and behold the power before you.

COMMANDS
       All commands within mib2c.conf files are embraced by @ signs.  Anything
       with  an @ sign at the front and back of the line is generally supposed
       to be a mib2c specific command.	These are detailed here:

       @open FILE@
	      writes generated output to FILE note that	 for  file  specifica‐
	      tions, opening '-' will print to stdout.

       @append FILE@
	      appends the given FILE

       @close FILE@
	      closes the given FILE

       @push@ save  the	 current  outputs, then clear outputs. Use with @open@
	      and @pop@ to write to a new file without interfering  with  cur‐
	      rent outputs.

       @pop@  pop  up  the  process()  stack  one level. Use after a @push@ to
	      return to the previous set of open files.

       @foreach $VAR scalar@
	      repeat iterate over code until @end@ setting $VAR to  all	 known
	      scalars

       @foreach $VAR table@
	      repeat  iterate  over code until @end@ setting $VAR to all known
	      tables

       @foreach $VAR column@
	      repeat iterate over code until @end@ setting $VAR to  all	 known
	      columns  within  a  given	 table.	 Obviously this must be called
	      within a foreach-table clause.

       @foreach $VAR nonindex@
	      repeat iterate over code until @end@ setting $VAR to  all	 known
	      non-index	 columns within a given table.	Obviously this must be
	      called within a foreach-table clause.

       @foreach $VAR internalindex@
	      repeat iterate over code until @end@ setting $VAR to  all	 known
	      internal	index  columns	within	a given table.	Obviously this
	      must be called within a foreach-table clause.

       @foreach $VAR externalindex@
	      repeat iterate over code until @end@ setting $VAR to  all	 known
	      external	index  columns	within	a given table.	Obviously this
	      must be called within a foreach-table clause.

       @foreach $VAR index@
	      repeat iterate over code until @end@ setting $VAR to  all	 known
	      indexes  within  a  given	 table.	 Obviously this must be called
	      within a foreach-table clause.

       @foreach $VAR notifications@
	      repeat iterate over code until @end@ setting $VAR to  all	 known
	      notifications

       @foreach $VAR varbinds@
	      repeat  iterate  over code until @end@ setting $VAR to all known
	      varbinds Obviously this must be called within a  foreach-notifi‐
	      cations clause.

       @foreach $LABEL, $VALUE enum@
	      repeat  iterate  over code until @end@ setting $LABEL and $VALUE
	      to the label and values from the enum list.

       @foreach $RANGE_START, $RANGE_END range NODE@
	      repeat iterate over code until @end@  setting  $RANGE_START  and
	      $RANGE_END to the legal accepted range set for a given mib NODE.

       @foreach $var stuff a b c d@
	      repeat  iterate  over  values a, b, c, d as assigned generically
	      (ie, the values are taken straight from the list	with  no  mib-
	      expansion, etc).

       @while expression@
	      repeat iterate over code until the expression is false

       @eval $VAR = expression@
	      evaluates	 expression  and assigns the results to $VAR.  This is
	      not a full perl eval, but sort of a ""psuedo"" eval  useful  for
	      simple  expressions  while keeping the same variable name space.
	      See below for a full-blown export to perl.

       @perleval STUFF@
	      evaluates STUFF directly in perl.	 Note that all mib2c variables
	      interpereted  within  .conf  files are in $vars{NAME} and that a
	      warning will be printed if STUFF does not return	0.  (adding  a
	      'return 0;' at the end of STUFF is a workaround.

       @startperl@

       @endperl@
	      treats everything between these tags as perl code, and evaluates
	      it.

       @next@ restart foreach; should  only  be	 used  inside  a  conditional.
	      skips  out of current conditional, then continues to skip to end
	      for the current foreach clause.

       @if expression@
	      evaluates expression, and if expression is true  processes  con‐
	      tained  part until appropriate @end@ is reached.	If the expres‐
	      sion is false, the next @elsif  expression@  expression  (if  it
	      exists)  will  be	 evaluated, until an expression is true. If no
	      such expression exists and an @else@ clause is found, it will be
	      evaluated.

       @ifconf file@
	      If the specified file can be found in the conf file search path,
	      and if found processes contained part until an appropriate @end@
	      is  found. As with a regular @if expression@, @elsif expression@
	      and @else@ can be used.

       @ifdir dir@
	      If the specified directory exists, process contained part	 until
	      an  appropriate  @end@  is  found. As with a regular @if expres‐
	      sion@, @elsif expression@ and @else@ can be used.

       @define NAME@

       @enddefine@
	      Memorizes ""stuff"" between the define and  enddefine  tags  for
	      later calling as NAME by @calldefine NAME@.

       @calldefine NAME@
	      Executes stuff previously memorized as NAME.

       @printf "expression" stuff1, stuff2, ...@
	      Like all the other printf's you know and love.

       @run FILE@
	      Sources  the  contents  of  FILE	as  a mib2c file, but does not
	      affect current files opened.

       @include FILE@
	      Sources the contents of FILE as a mib2c  file  and  appends  its
	      output to the current output.

       @prompt $var QUESTION@
	      Presents	the user with QUESTION, expects a response and puts it
	      in $var

       @print STUFF@
	      Prints stuff directly to the users screen (ie, not to where nor‐
	      mal mib2c output goes)

       @quit@ Bail out (silently)

       @exit@ Bail out!

VARIABLES
       Variables in the mib2c language look very similar to perl variables, in
       that they start with a "$".  They can be used for  anything  you	 want,
       but  most  typically  they'll  hold  mib	 node names being processed by
       @foreach ...@ clauses.

       They also have a special properties when they are a mib node, such that
       adding  special	suffixes  to them will allow them to be interpreted in
       some fashion.  The easiest way to understand this is through  an	 exam‐
       ple.  If the variable 'x' contained the word 'ifType' then some magical
       things happen.  In mib2c output, anytime $x is seen it is replaced with
       "ifType".  Additional suffixes can be used to get other aspects of that
       mib node though.	 If $x.objectID is seen, it'll be replaced by the  OID
       for  ifType:  ".1.3.6.1.2.1.2.2.1.3".   Other  suffixes that can appear
       after a dot are listed below.

       One last thing: you can use things like $vartext immediately ending  in
       some  other  text, you can use {}s to get proper expansion of only part
       of the mib2c input.  IE, $xtext will  produce  "$xtext",	 but  ${x}text
       will produce "ifTypetext" instead.

       $var.uc
	      all upper case version of $var

       $var.objectID
	      dotted, fully-qualified, and numeric OID

       $var.commaoid
	      comma separated numeric OID for array initialization

       $var.oidlength
	      length of the oid

       $var.subid
	      last number component of oid

       $var.module
	      MIB name that the object comes from

       $var.parent
	      contains the label of the parent node of $var.

       $var.isscalar
	      returns 1 if var contains the name of a scalar

       $var.iscolumn
	      returns 1 if var contains the name of a column

       $var.children
	      returns 1 if var has children

       $var.perltype
	      node's perl SYNTAX ($SNMP::MIB{node}{'syntax'})

       $var.type
	      node's ASN_XXX type (Net-SNMP specific #define)

       $var.decl
	      C data type (char, u_long, ...)

       $var.readable
	      1 if an object is readable, 0 if not

       $var.settable
	      1 if an object is writable, 0 if not

       $var.creatable
	      1	 if  a column object can be created as part of a new row, 0 if
	      not

       $var.noaccess
	      1 if not-accessible, 0 if not

       $var.accessible
	      1 if accessible, 0 if not

       $var.storagetype
	      1 if an object is a StorageType object, 0 if not

       $var.rowstatus
	      1 if an object is a RowStatus object, 0 if not 'settable', 'cre‐
	      atable', 'lastchange', 'storagetype' and 'rowstatus' can also be
	      used with	 table	variables  to  indicate	 whether  it  contains
	      writable, creatable, LastChange, StorageType or RowStatus column
	      objects

       $var.hasdefval
	      returns 1 if var has a DEFVAL clause

       $var.defval
	      node's DEFVAL

       $var.hashint
	      returns 1 if var has a HINT clause

       $var.hint
	      node's HINT

       $var.ranges
	      returns 1 if var has a value range defined

       $var.enums
	      returns 1 if var has enums defined for it.

       $var.access
	      node's access type

       $var.status
	      node's status

       $var.syntax
	      node's syntax

       $var.reference
	      node's reference

       $var.description
	      node's description

SEE ALSO
       mib2c(1)

VVERSIONINFO			  28 Apr 2004			 MIB2C.CONF(5)
[top]

List of man pages available for Mageia

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net