.\" -*- 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 snmpgetnext
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).
