Make arcstat.py default to one header per screen
Today arcstat.py prints one header every hdr_intr (20 by default) lines. It would be more consistent with out utilities like vmstat if hdr_intr defaulted to terminal window size, i.e. one header per screenful of outputs. Signed-off-by: Isaac Huang <he.huang@intel.com> Signed-off-by: Prakash Surya <surya1@llnl.gov> Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Closes #2183
This commit is contained in:
parent
4e26f2fccd
commit
4e1c9f9c48
|
@ -230,11 +230,20 @@ def print_header():
|
||||||
sys.stdout.write("%*s%s" % (cols[col][0], col, sep))
|
sys.stdout.write("%*s%s" % (cols[col][0], col, sep))
|
||||||
sys.stdout.write("\n")
|
sys.stdout.write("\n")
|
||||||
|
|
||||||
|
def get_terminal_lines():
|
||||||
|
try:
|
||||||
|
import fcntl, termios, struct
|
||||||
|
data = fcntl.ioctl(sys.stdout.fileno(), termios.TIOCGWINSZ, '1234')
|
||||||
|
sz = struct.unpack('hh', data)
|
||||||
|
return sz[0]
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
def init():
|
def init():
|
||||||
global sint
|
global sint
|
||||||
global count
|
global count
|
||||||
global hdr
|
global hdr
|
||||||
|
global hdr_intr
|
||||||
global xhdr
|
global xhdr
|
||||||
global opfile
|
global opfile
|
||||||
global sep
|
global sep
|
||||||
|
@ -304,6 +313,10 @@ def init():
|
||||||
if xflag:
|
if xflag:
|
||||||
hdr = xhdr
|
hdr = xhdr
|
||||||
|
|
||||||
|
lines = get_terminal_lines()
|
||||||
|
if lines:
|
||||||
|
hdr_intr = lines - 3
|
||||||
|
|
||||||
# check if L2ARC exists
|
# check if L2ARC exists
|
||||||
snap_stats()
|
snap_stats()
|
||||||
l2_size = cur.get("l2_size")
|
l2_size = cur.get("l2_size")
|
||||||
|
|
Loading…
Reference in New Issue