[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