Continuous display of top CPU processes
From CT3
The script emulates the Unix top command and continuously (every five seconds) displays top 20 CPU processes.
Contents |
Installation
- Download the source file into flash:top.tcl.
- Configure alias exec top tclsh flash:top.tcl.
- Invoke with top.
Usage guidelines
Usage: top [ 5sec | 1min | 5min ]
The script changes the escape character to Ctrl/C. Use terminal escape default to restore default settings
Author
Ivan Pepelnjak, © 2008 NIL Data Communications
Source code
#
# Copyright (c) 2008 NIL Data Communications
# All rights reserved.
#
# by: Ivan Pepelnjak, NIL Data Communications
# title: Emulate the Unix top command
# name: top.tcl
# desc: The script displays top CPU processes every 5 seconds
#
# ios config:
#
# * download the file into flash:top.tcl
# * configure alias exec top tclsh flash:top.tcl
#
# invoke with top [5sec|1min|5min]
#
set IOS [string equal $tcl_platform(os) "Cisco IOS"];
if { $IOS } {
exec "terminal international";
exec "terminal escape 3";
}
set arg [lindex $argv 0];
if { [string length $arg] == 0 } { set arg "5sec" } ;
if { [lsearch -exact { 5sec 1min 5min } $arg] < 0 } {
puts {Usage: top [5sec|1min|5min]};
return 0;
}
fconfigure stdout -buffering none;
while {1} {
set lines [split [exec "show process cpu sorted $arg | exclude 0.00% +0.00% +0.00%"] "\n"];
puts -nonewline "\033\[2J\033\[H";
for { set lc 1 } { $lc < 23 } { incr lc } {
set curline [lindex $lines $lc];
if { [string length $curline] > 0 } { puts "$curline"; }
}
puts -nonewline "\nBreak with Ctrl/C --> ";
after 5000;
}
Change history
- Filter the show process output to exclude idle processes based on suggestion by Masood Ahmad Shah
Ivan Pepelnjak 14:45, 30 May 2008 (UTC)
Categories: Tcl | Tclsh
BlogMarks
del.icio.us
digg
Newsvine
reddit
Slashdot