74ad0d343f
displaying multiple reports
144 lines
5.4 KiB
Diff
144 lines
5.4 KiB
Diff
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.
|