svn commit: r207658 - stable/7/sbin/sysctl
Gavin Atkinson
gavin at FreeBSD.org
Wed May 5 12:48:31 UTC 2010
Author: gavin
Date: Wed May 5 12:48:30 2010
New Revision: 207658
URL: http://svn.freebsd.org/changeset/base/207658
Log:
Merge r203310,203547,203717 from head:
Implement the "-i" option to sysctl(8), to ignore failures while
retrieving individual OIDs. This allows the same list of OIDs to be
passed to sysctl(8) across different systems where particular OIDs may
not exist, and still get as much information as possible from them.
PR: bin/123644
Submitted by: dhw
Modified:
stable/7/sbin/sysctl/sysctl.8
stable/7/sbin/sysctl/sysctl.c
Directory Properties:
stable/7/sbin/sysctl/ (props changed)
Modified: stable/7/sbin/sysctl/sysctl.8
==============================================================================
--- stable/7/sbin/sysctl/sysctl.8 Wed May 5 12:39:44 2010 (r207657)
+++ stable/7/sbin/sysctl/sysctl.8 Wed May 5 12:48:30 2010 (r207658)
@@ -28,7 +28,7 @@
.\" From: @(#)sysctl.8 8.1 (Berkeley) 6/6/93
.\" $FreeBSD$
.\"
-.Dd November 28, 2007
+.Dd February 6, 2010
.Dt SYSCTL 8
.Os
.Sh NAME
@@ -36,7 +36,7 @@
.Nd get or set kernel state
.Sh SYNOPSIS
.Nm
-.Op Fl bdehNnoqx
+.Op Fl bdehiNnoqx
.Ar name Ns Op = Ns Ar value
.Ar ...
.Nm
@@ -82,6 +82,12 @@ or
is specified, or a variable is being set.
.It Fl h
Format output for human, rather than machine, readability.
+.It Fl i
+Ignore unknown OIDs.
+The purpose is to make use of
+.Nm
+for collecting data from a variety of machines (not all of which
+are necessarily running exactly the same software) easier.
.It Fl N
Show only variable names, not their values.
This is particularly useful with shells that offer programmable
Modified: stable/7/sbin/sysctl/sysctl.c
==============================================================================
--- stable/7/sbin/sysctl/sysctl.c Wed May 5 12:39:44 2010 (r207657)
+++ stable/7/sbin/sysctl/sysctl.c Wed May 5 12:48:30 2010 (r207658)
@@ -58,8 +58,8 @@ static const char rcsid[] =
#include <string.h>
#include <unistd.h>
-static int aflag, bflag, dflag, eflag, hflag, Nflag, nflag, oflag;
-static int qflag, xflag;
+static int aflag, bflag, dflag, eflag, hflag, iflag,
+static int Nflag, nflag, oflag, qflag, xflag;
static int oidfmt(int *, int, char *, u_int *);
static void parse(char *);
@@ -75,7 +75,7 @@ usage(void)
{
(void)fprintf(stderr, "%s\n%s\n",
- "usage: sysctl [-bdehNnoqx] name[=value] ...",
+ "usage: sysctl [-bdehiNnoqx] name[=value] ...",
" sysctl [-bdehNnoqx] -a");
exit(1);
}
@@ -89,7 +89,7 @@ main(int argc, char **argv)
setbuf(stdout,0);
setbuf(stderr,0);
- while ((ch = getopt(argc, argv, "AabdehNnoqwxX")) != -1) {
+ while ((ch = getopt(argc, argv, "AabdehiNnoqwxX")) != -1) {
switch (ch) {
case 'A':
/* compatibility */
@@ -110,6 +110,9 @@ main(int argc, char **argv)
case 'h':
hflag = 1;
break;
+ case 'i':
+ iflag = 1;
+ break;
case 'N':
Nflag = 1;
break;
@@ -185,6 +188,8 @@ parse(char *string)
len = name2oid(bufp, mib);
if (len < 0) {
+ if (iflag)
+ return;
if (qflag)
exit(1);
else
More information about the svn-src-stable
mailing list