[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] New xm uptime command.
# HG changeset patch # User emellor@xxxxxxxxxxxxxxxxxxxxxx # Node ID 457c427c28fcc65dc30c52c50662f404b3f6c475 # Parent 44aa6f86830d90c007d23e1d1ce6ff6e2fe0841b New xm uptime command. >From Alex Brett <alex.brett@xxxxxxxxxxxxx> Signed-off-by: Ewan Mellor <ewan@xxxxxxxxxxxxx> --- docs/src/user.tex | 3 ++ tools/python/xen/xm/main.py | 59 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) diff -r 44aa6f86830d -r 457c427c28fc docs/src/user.tex --- a/docs/src/user.tex Fri Aug 11 18:09:13 2006 +0100 +++ b/docs/src/user.tex Sat Aug 12 12:25:42 2006 +0100 @@ -1089,6 +1089,9 @@ The \path{xm list} command also supports The \path{xm list} command also supports a long output format when the \path{-l} switch is used. This outputs the full details of the running domains in \xend's SXP configuration format. + +If you want to know how long your domains have been running for, then +you can use the \verb_# xm uptime_ command. You can get access to the console of a particular domain using diff -r 44aa6f86830d -r 457c427c28fc tools/python/xen/xm/main.py --- a/tools/python/xen/xm/main.py Fri Aug 11 18:09:13 2006 +0100 +++ b/tools/python/xen/xm/main.py Sat Aug 12 12:25:42 2006 +0100 @@ -31,6 +31,7 @@ warnings.filterwarnings('ignore', catego warnings.filterwarnings('ignore', category=FutureWarning) import xmlrpclib import traceback +import datetime import xen.xend.XendProtocol @@ -70,6 +71,7 @@ shutdown_help ="shutdown <DomId> [-w][-a shutdown_help ="shutdown <DomId> [-w][-a][-R|-H] Shutdown a domain" top_help = "top Monitor system and domains in real-time" unpause_help = "unpause <DomId> Unpause a paused domain" +uptime_help = "uptime [-s|--short] [DomId, ...] List uptime for domains" help_spacer = """ """ @@ -149,6 +151,7 @@ short_command_list = [ "shutdown", "top", "unpause", + "uptime", "vcpu-set", ] @@ -172,6 +175,7 @@ domain_commands = [ "sysrq", "top", "unpause", + "uptime", "vcpu-list", "vcpu-pin", "vcpu-set", @@ -412,6 +416,7 @@ def parse_doms_info(info): 'vcpus' : get_info('online_vcpus', int, 0), 'state' : get_info('state', str, '??'), 'cpu_time' : get_info('cpu_time', float, 0), + 'up_time' : get_info('up_time', float, -1), 'seclabel' : security.get_security_printlabel(info), } @@ -818,6 +823,59 @@ def xm_console(args): domid = int(sxp.child_value(info, 'domid', '-1')) console.execConsole(domid) +def xm_uptime(args): + short_mode = 0 + + try: + (options, params) = getopt.gnu_getopt(args, 's', ['short']) + except getopt.GetoptError, opterr: + err(opterr) + sys.exit(1) + + for (k, v) in options: + if k in ['-s', '--short']: + short_mode = 1 + + doms = getDomains(params) + + if short_mode == 0: + print 'Name ID Uptime' + + for dom in doms: + d = parse_doms_info(dom) + if d['dom'] > 0: + uptime = int(round(d['up_time'])) + else: + f=open('/proc/uptime', 'r') + upfile = f.read() + uptime = int(round(float(upfile.split(' ')[0]))) + f.close() + + days = int(uptime / 86400) + uptime -= (days * 86400) + hours = int(uptime / 3600) + uptime -= (hours * 3600) + minutes = int(uptime / 60) + uptime -= (minutes * 60) + seconds = uptime + + upstring = "" + if days > 0: + upstring += str(days) + " day" + if days > 1: + upstring += "s" + upstring += ", " + upstring += '%(hours)2d:%(minutes)02d' % vars() + + if short_mode: + now = datetime.datetime.now() + upstring = now.strftime(" %H:%M:%S") + " up " + upstring + upstring += ", " + d['name'] + " (" + str(d['dom']) + ")" + else: + upstring += ':%(seconds)02d' % vars() + upstring = ("%(name)-32s %(dom)3d " % d) + upstring + + print upstring def xm_top(args): arg_check(args, "top", 0) @@ -1117,6 +1175,7 @@ commands = { "save": xm_save, "reboot": xm_reboot, "shutdown": xm_shutdown, + "uptime": xm_uptime, "list": xm_list, # memory commands "mem-max": xm_mem_max, _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |