[sysstat] - added new -y option to iostat command to skip first since boot report if displaying multiple rep

pschiffe pschiffe at fedoraproject.org
Mon Dec 3 16:47:44 UTC 2012


commit 74ad0d343fef54c502a2aa0fca00c5488059eaa4
Author: Peter Schiffer <pschiffe at redhat.com>
Date:   Mon Dec 3 17:47:22 2012 +0100

    - added new -y option to iostat command to skip first since boot report if
      displaying multiple reports

 sysstat-10.1.2-omit-first-report.patch |  143 ++++++++++++++++++++++++++++++++
 sysstat.spec                           |    8 ++-
 2 files changed, 150 insertions(+), 1 deletions(-)
---
diff --git a/sysstat-10.1.2-omit-first-report.patch b/sysstat-10.1.2-omit-first-report.patch
new file mode 100644
index 0000000..8c844bd
--- /dev/null
+++ b/sysstat-10.1.2-omit-first-report.patch
@@ -0,0 +1,143 @@
+diff -upr sysstat-10.1.2.orig/iostat.c sysstat-10.1.2/iostat.c
+--- sysstat-10.1.2.orig/iostat.c	2012-10-03 21:18:22.000000000 +0200
++++ sysstat-10.1.2/iostat.c	2012-11-22 16:24:38.860140304 +0100
+@@ -85,13 +85,13 @@ void usage(char *progname)
+ 		progname);
+ #ifdef DEBUG
+ 	fprintf(stderr, _("Options are:\n"
+-			  "[ -c ] [ -d ] [ -h ] [ -k | -m ] [ -N ] [ -t ] [ -V ] [ -x ] [ -z ]\n"
++			  "[ -c ] [ -d ] [ -h ] [ -k | -m ] [ -N ] [ -t ] [ -V ] [ -x ] [ -y ] [ -z ]\n"
+ 			  "[ -j { ID | LABEL | PATH | UUID | ... } ]\n"
+ 			  "[ [ -T ] -g <group_name> ] [ -p [ <device> [,...] | ALL ] ]\n"
+ 			  "[ <device> [...] | ALL ] [ --debuginfo ]\n"));
+ #else
+ 	fprintf(stderr, _("Options are:\n"
+-			  "[ -c ] [ -d ] [ -h ] [ -k | -m ] [ -N ] [ -t ] [ -V ] [ -x ] [ -z ]\n"
++			  "[ -c ] [ -d ] [ -h ] [ -k | -m ] [ -N ] [ -t ] [ -V ] [ -x ] [ -y ] [ -z ]\n"
+ 			  "[ -j { ID | LABEL | PATH | UUID | ... } ]\n"
+ 			  "[ [ -T ] -g <group_name> ] [ -p [ <device> [,...] | ALL ] ]\n"
+ 			  "[ <device> [...] | ALL ]\n"));
+@@ -1205,6 +1205,12 @@ void write_stats(int curr, struct tm *re
+ void rw_io_stat_loop(long int count, struct tm *rectime)
+ {
+ 	int curr = 1;
++	int skip = 0;
++
++	/* Should we skip first report? */
++	if (DISPLAY_OMIT_SINCE_BOOT(flags) && interval > 0) {
++		skip = 1;
++	}
+ 
+ 	/* Don't buffer data if redirected to a pipe */
+ 	setbuf(stdout, NULL);
+@@ -1261,12 +1267,18 @@ void rw_io_stat_loop(long int count, str
+ 		/* Get time */
+ 		get_localtime(rectime, 0);
+ 
+-		/* Print results */
+-		write_stats(curr, rectime);
++		/* Check whether we should skip first report */
++		if (!skip) {
++			/* Print results */
++			write_stats(curr, rectime);
+ 
+-		if (count > 0) {
+-			count--;
++			if (count > 0) {
++				count--;
++			}
++		} else {
++			skip = 0;
+ 		}
++
+ 		if (count) {
+ 			curr ^= 1;
+ 			pause();
+@@ -1458,7 +1470,12 @@ int main(int argc, char **argv)
+ 					/* Display extended stats */
+ 					flags |= I_D_EXTENDED;
+ 					break;
+-					
++
++				case 'y':
++					/* Omit first since boot stats */
++					flags |= I_D_OMIT_SINCE_BOOT;
++					break;
++
+ 				case 'z':
+ 					/* Omit output for devices with no activity */
+ 					flags |= I_D_ZERO_OMIT;
+diff -upr sysstat-10.1.2.orig/iostat.h sysstat-10.1.2/iostat.h
+--- sysstat-10.1.2.orig/iostat.h	2012-10-03 21:18:22.000000000 +0200
++++ sysstat-10.1.2/iostat.h	2012-11-22 16:09:53.136250283 +0100
+@@ -23,7 +23,7 @@
+ #define I_F_HAS_DISKSTATS	0x00800
+ #define I_D_HUMAN_READ		0x01000
+ #define I_D_PERSIST_NAME	0x02000
+-/* Unused			0x04000 */
++#define I_D_OMIT_SINCE_BOOT	0x04000
+ /* Unused			0x08000 */
+ #define I_D_DEVMAP_NAME		0x10000
+ #define I_D_ISO			0x20000
+@@ -44,6 +44,7 @@
+ #define HAS_DISKSTATS(m)		(((m) & I_F_HAS_DISKSTATS)    == I_F_HAS_DISKSTATS)
+ #define DISPLAY_HUMAN_READ(m)		(((m) & I_D_HUMAN_READ)       == I_D_HUMAN_READ)
+ #define DISPLAY_PERSIST_NAME_I(m)	(((m) & I_D_PERSIST_NAME)     == I_D_PERSIST_NAME)
++#define DISPLAY_OMIT_SINCE_BOOT(m)	(((m) & I_D_OMIT_SINCE_BOOT)     == I_D_OMIT_SINCE_BOOT)
+ #define DISPLAY_DEVMAP_NAME(m)		(((m) & I_D_DEVMAP_NAME)      == I_D_DEVMAP_NAME)
+ #define DISPLAY_ISO(m)			(((m) & I_D_ISO)              == I_D_ISO)
+ #define DISPLAY_GROUP_TOTAL_ONLY(m)	(((m) & I_D_GROUP_TOTAL_ONLY) == I_D_GROUP_TOTAL_ONLY)
+diff -upr sysstat-10.1.2.orig/man/iostat.in sysstat-10.1.2/man/iostat.in
+--- sysstat-10.1.2.orig/man/iostat.in	2012-07-13 21:40:54.000000000 +0200
++++ sysstat-10.1.2/man/iostat.in	2012-11-22 17:53:57.961559688 +0100
+@@ -4,7 +4,7 @@ iostat \- Report Central Processing Unit
+ statistics for devices and partitions.
+ .SH SYNOPSIS
+ .ie 'yes'@WITH_DEBUG@' \{
+-.B iostat [ -c ] [ -d ] [ -h ] [ -k | -m ] [ -N ] [ -t ] [ -V ] [ -x ] [ -z ]
++.B iostat [ -c ] [ -d ] [ -h ] [ -k | -m ] [ -N ] [ -t ] [ -V ] [ -x ] [ -y ] [ -z ]
+ .B [ -j { ID | LABEL | PATH | UUID | ... } ]
+ .B [ [ -T ] -g
+ .I group_name
+@@ -19,7 +19,7 @@ statistics for devices and partitions.
+ .B ] ]
+ .\}
+ .el \{
+-.B iostat [ -c ] [ -d ] [ -h ] [ -k | -m ] [ -N ] [ -t ] [ -V ] [ -x ] [ -z ]
++.B iostat [ -c ] [ -d ] [ -h ] [ -k | -m ] [ -N ] [ -t ] [ -V ] [ -x ] [ -y ] [ -z ]
+ .B [ -j { ID | LABEL | PATH | UUID | ... } ]
+ .B [ [ -T ] -g
+ .I group_name
+@@ -47,7 +47,9 @@ the input/output load between physical d
+ The first report generated by the
+ .B iostat
+ command provides statistics
+-concerning the time since the system was booted. Each subsequent report
++concerning the time since the system was booted, unless the
++.B -y
++option is used, when this first report is omitted. Each subsequent report
+ covers the time since the previous report. All statistics are reported
+ each time the iostat command is run. The report consists of a
+ CPU header row followed by a row of
+@@ -60,7 +62,10 @@ The
+ .I interval
+ parameter specifies the amount of time in seconds between
+ each report. The first report contains statistics for the time since
+-system startup (boot). Each subsequent report contains statistics
++system startup (boot), unless the
++.B -y
++option is used, when this report is omitted.
++Each subsequent report contains statistics
+ collected during the interval since the previous report. The
+ .I count
+ parameter can be specified in conjunction with the
+@@ -326,6 +331,9 @@ on the value of the S_TIME_FORMAT enviro
+ Print version number then exit.
+ .IP -x
+ Display extended statistics.
++.IP -y
++Omit first report with statistics since the system boot, if displaying multiple
++records in given interval.
+ .IP -z
+ Tell iostat to omit output for any devices for which there was no activity
+ during the sample period.
diff --git a/sysstat.spec b/sysstat.spec
index 82d2c5e..f7b099d 100644
--- a/sysstat.spec
+++ b/sysstat.spec
@@ -1,13 +1,14 @@
 Summary: Collection of performance monitoring tools for Linux
 Name: sysstat
 Version: 10.1.2
-Release: 1%{?dist}
+Release: 2%{?dist}
 License: GPLv2+
 Group: Applications/System
 URL: http://sebastien.godard.pagesperso-orange.fr/
 Source: http://pagesperso-orange.fr/sebastien.godard/%{name}-%{version}.tar.bz2
 
 Patch0: sysstat-10.0.0-makefile.patch
+Patch1: sysstat-10.1.2-omit-first-report.patch
 
 Requires: /etc/cron.d, fileutils, grep, sh-utils, textutils
 Requires(post): systemd, systemd-sysv
@@ -36,6 +37,7 @@ The cifsiostat command reports I/O statistics for CIFS file systems.
 %prep
 %setup -q
 %patch0 -p1 -b .ls
+%patch1 -p1 -b .omit
 iconv -f windows-1252 -t utf8 CREDITS > CREDITS.aux
 mv CREDITS.aux CREDITS
 
@@ -96,6 +98,10 @@ fi
 %{_localstatedir}/log/sa
 
 %changelog
+* Mon Dec  3 2012 Peter Schiffer <pschiffe at redhat.com> - 10.1.2-2
+- added new -y option to iostat command to skip first since boot report if
+  displaying multiple reports
+
 * Tue Nov 13 2012 Peter Schiffer <pschiffe at redhat.com> - 10.1.2-1
 - resolves: #863791
   updated to 10.1.2


More information about the scm-commits mailing list