dbpassword = ''
 debug = 0
 interval = 24 * 3600
+min = None
+max = None
+header = 1
 
 db = None
 st = None
 
 
 try:
-       opts, args = getopt.getopt(sys.argv[1:], 'hc:di:', ['help', 'config=', 'dbhost=', 'dbname=', 'dbuser=', 'dbpassword=', 'debug', 'interval=' ])
+       opts, args = getopt.getopt(sys.argv[1:], 'hc:di:n:x:H', ['help', 'config=', 'dbhost=', 'dbname=', 'dbuser=', 'dbpassword=', 'debug', 'interval=', 'min=', 'max=', 'no-header' ])
 except getopt.GetoptError:
        print 'Args error'
        sys.exit(2)
   --dbuser\n\
   -d, --debug\n\
   --dbpassword\n\
-  -i, --interval TIME ... time interval"
+  -i, --interval TIME ... time interval\n\
+  -n, --min ............. start time (default: autodetect)\n\
+  -x, --max ............. end time (default: autodetect)\n\
+  -H, --no-header ....... don't print the header"
                sys.exit(0)
        elif opt in ('-c', '--config'):
                f = open(arg, 'r')
                debug = int(arg)
        elif opt in ('-i', '--interval'):
                interval = long(arg)
+       elif opt in ('-n', '--min'):
+               min = long(arg) * 1000
+       elif opt in ('-x', '--max'):
+               max = long(arg) * 1000
+       elif opt in ('-H', '--no-header'):
+               header = 0
        else:
                print 'Args error'
                sys.exit(2)
        nodes[data['id']] = data['host']
 
 
-st.execute('SELECT MIN(start) AS min, MAX(finish) AS max FROM subjobs')
-data = st.fetchone()
-min = data['min']
-max = data['max']
+if not min or not max:
+       st.execute('SELECT MIN(start) AS min, MAX(finish) AS max FROM subjobs')
+       data = st.fetchone()
+if not min:
+       min = data['min']
+if not max:
+       max = data['max']
 
 if debug:
        print 'Min: %s' % strp(min)
 if debug:
        print 'Range: %s ... %s' % (strp(min), strp(max))
 
-usages = list()
-usages.append('time')
-usages.append('mapred')
-for nodeid in sorted(nodes.keys()):
-       usages.append(nodes[nodeid])
-print "\t".join(usages)
+if header:
+       usages = list()
+       usages.append('time')
+       usages.append('mapred')
+       for nodeid in sorted(nodes.keys()):
+               usages.append(nodes[nodeid])
+       print "\t".join(usages)
 
 i = min
 while i < max: