summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sbin/sysctl/sysctl.88
-rw-r--r--sbin/sysctl/sysctl.c11
2 files changed, 15 insertions, 4 deletions
diff --git a/sbin/sysctl/sysctl.8 b/sbin/sysctl/sysctl.8
index 4084290..8f835a8 100644
--- a/sbin/sysctl/sysctl.8
+++ b/sbin/sysctl/sysctl.8
@@ -28,7 +28,7 @@
.\" From: @(#)sysctl.8 8.1 (Berkeley) 6/6/93
.\" $FreeBSD$
.\"
-.Dd November 28, 2007
+.Dd January 31, 2010
.Dt SYSCTL 8
.Os
.Sh NAME
@@ -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
diff --git a/sbin/sysctl/sysctl.c b/sbin/sysctl/sysctl.c
index 38c5038..616b4cd 100644
--- a/sbin/sysctl/sysctl.c
+++ b/sbin/sysctl/sysctl.c
@@ -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, warncount;
+static int aflag, bflag, dflag, eflag, hflag, iflag;
+static int Nflag, nflag, oflag, qflag, xflag, warncount;
static int oidfmt(int *, int, char *, u_int *);
static void parse(char *);
@@ -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;
@@ -187,6 +190,8 @@ parse(char *string)
len = name2oid(bufp, mib);
if (len < 0) {
+ if (iflag)
+ return;
if (qflag)
exit(1);
else
OpenPOWER on IntegriCloud