From 74ad0d343fef54c502a2aa0fca00c5488059eaa4 Mon Sep 17 00:00:00 2001 From: Peter Schiffer Date: Dec 03 2012 16:47:22 +0000 Subject: - added new -y option to iostat command to skip first since boot report if displaying multiple reports --- 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 ] [ -p [ [,...] | ALL ] ]\n" + "[ [...] | 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 ] [ -p [ [,...] | ALL ] ]\n" + "[ [...] | 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 - 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 - 10.1.2-1 - resolves: #863791 updated to 10.1.2