.\" -*- nroff -*-
.\" Portions of this file are subject to the following copyright.  See
.\" the Net-SNMP COPYING file for more details and other copyrights
.\" that may apply:
.\" /***********************************************************
.\" 	Copyright 1988, 1989 by Carnegie Mellon University
.\" 
.\"                       All Rights Reserved
.\" 
.\" Permission to use, copy, modify, and distribute this software and its 
.\" documentation for any purpose and without fee is hereby granted, 
.\" provided that the above copyright notice appear in all copies and that
.\" both that copyright notice and this permission notice appear in 
.\" supporting documentation, and that the name of CMU not be
.\" used in advertising or publicity pertaining to distribution of the
.\" software without specific, written prior permission.  
.\" 
.\" CMU DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
.\" ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
.\" CMU BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
.\" ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
.\" WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
.\" ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
.\" SOFTWARE.
.\" ******************************************************************/
.TH SNMPGETNEXT 1 "04 Mar 2002" VVERSIONINFO "Net-SNMP"
.SH NAME
snmpgetnext - communicates with a network entity using SNMP GETNEXT requests
.SH SYNOPSIS
.B snmpgetnext
[COMMON OPTIONS] [\-Cf] AGENT OID [OID]...
.SH DESCRIPTION
.B snmpget
is an SNMP application that uses the SNMP GETNEXT request to query for
information on a network entity.  One or more object identifiers
(OIDs) may be given as arguments on the command line.  Each variable
name is given in the format specified in
.IR variables(5) .
For each one, the variable that is lexicographically "next" in the
remote entity's MIB will be returned.
.PP
For example:
.PP
snmpgetnext \-c public zeus interfaces.ifTable.ifEntry.ifType.1
.PP
will retrieve the variable interfaces.ifTable.ifEntry.ifType.2:
.PP
interfaces.ifTable.ifEntry.ifType.2 = softwareLoopback(24)
.PP
If the network entity has an error processing the request packet, an
error message will be shown, helping to pinpoint in what way the
request was malformed.
.SH "OPTIONS"
.TP 8
.B \-Cf
If
.B \-Cf
is
.I not
specified, some applications
.RB ( snmpdelta ", " snmpget ", " snmpgetnext " and " snmpstatus )
will try to fix errors returned by the agent that you were talking to
and resend the request.  The only time this is really useful is if you
specified a OID that didn't exist in your request and you're using
SNMPv1 which requires "all or nothing" kinds of requests.
.PP
In addition to this option,
.B snmpgetnext
takes the common options described in the
.I snmpcmd(1)
manual page.
Note that 
.B snmpgetnext
REQUIRES an argument specifying the agent to query
and at least one OID argument, as described there.
.SH "SEE ALSO"
snmpcmd(1), snmpget(1), variables(5).
