.TH SNMPCONF 1 "25 Feb 2003" VVERSIONINFO "Net-SNMP"
.SH NAME
snmpconf - creates and modifies SNMP configuration files
.SH SYNOPSIS
.B snmpconf
[OPTIONS] [fileToCreate]
.IP "Start with:"
.B snmpconf
-g basic_setup
.IP "Or even just:"
.B snmpconf
.SH DESCRIPTION
.B snmpconf
is a simple Perl script that walks you through setting up a
configuration file step by step.  It should be fairly straight forward
to use.  Merely run it and answer its questions.
.PP
In its default mode of operation, it prompts the user with menus
showing sections of the various configuration files it knows about.
When the user selects a section, a sub-menu is shown listing of the
descriptions of the tokens that can be created in that section.  When
a description is selected, the user is prompted with questions that
construct the configuration line in question.
.PP
Finally, when the user quits the program any configuration files that
have been edited by the user are saved to the local directory, fully
commented.
.PP
A particularly useful option is the
.B -g
switch, which walks a user through a specific set of configuration
questions.  Run:
.RS
.PP
snmpconf -g basic_setup
.RE
.PP
for an example.
.SH "OPTIONS"
.TP 8
.B -f
Force overwriting existing files in the current directory without
prompting the user if this is a desired thing to do.
.TP 
.B -i
When finished, install the files into the location where the global
system commands expect to find them.
.TP
.B -p
When finished, install the files into the users home directory's .snmp
subdirectory (where the applications will also search for
configuration files).
.TP
.BI -I " DIRECTORY"
When finished, install the files into the directory 
.IR DIRECTORY .
.TP
.B -a
Don't ask any questions.  Simply read in the various known
configuration files and write them back out again.  This has the
effect of "auto-commenting" the configuration files for you.  See
the
.B NEAT TRICKS
section below.
.TP
.BI -r all|none
Read in either all or none of the found configuration files.  Normally
.B snmpconf
prompts you for which files you wish to read in.  Reading in
these configuration files will merge these files with the results of
the questions that it asks of you.
.TP
.BI -R " FILE,..."
Read in a specific list of configuration files.
.TP
.BI -g " GROUPNAME"
Groups of configuration entries can be created that can be used to
walk a user through a series of questions to create an initial
configuration file.  There are no menus to navigate, just a list of
questions.  Run:
.RS
.RS
.PP
snmpconf -g basic_setup
.RE
.PP
for a good example.
.RE
.TP
.B -G
List all the known groups.
.TP
.BI -c " CONFIGDIR"
.B snmpconf
uses a directory of configuration information to learn about
the files and questions that it should be asking.  This option tells
.B snmpconf
to use a different location for configuring itself.
.TP
.B -q
Run slightly more quietly.  Since this is an interactive program, I
don't recommend this option since it only removes information from the
output that is designed to help you.
.TP
.B -d
Turn on 
.B lots
of debugging output.
.TP
.B -D
Add 
.B even more
debugging output in the form of Perl variable dumps.
.IP
.SH "NEAT TRICKS"
.IP "snmpconf -g basic_setup"
Have I mentioned this command enough yet?  It's designed to walk
someone through an initial setup for the
.I snmpd(8)
daemon.  Really, you should try it.
.IP "snmpconf -R /usr/local/snmp/snmpd.conf -a -f snmpd.conf"
Automatically reads in an snmpd.conf file (for example) and adds
comments to them describing what each token does.  Try it.  It's cool.
.SH "NOTES"
.B snmpconf
is actually a very generic utility that could be easily
configured to help construct just about any kind of configuration
file.  Its default configuration set of files are SNMP based.
.SH SEE ALSO
snmpd(8), snmp_config(5), snmp.conf(5), snmpd.conf(5)
