Le seguenti 101 parole non sono state trovate nel dizionario di 1275 termini (includendo 1275 LocalSpellingWords) e sono evidenziate qui sotto:
already   arg   argv   argvlist   asctime   between   Can   close   connect   created   date   default   dot   dotcon   dotfile   dotoutput   dump   Dumps   elif   else   epoch   erstr   except   exists   exit   exitonerror   False   file   File   filename   filenames   files   firstiteration   floating   for   from   gettimestamp   host   hostname   human   humanreadable   if   import   infinite   instructions   int   Interrupt   iterations   Keyboard   len   Logger   main   name   olsr   or   params   pass   plugin   point   port   processoptions   read   readable   readfromdotplugin   reading   reads   replace   return   seconds   since   Skipping   sleep   sleeping   sleepseconds   stderr   sys   tcp   Telnet   telnetlib   thostname   time   timeout   timeoutseconds   times   timestamp   to   Topology   tpause   tport   tread   True   try   ts   tset   tthe   tuse   until   Usage   Warning   while   write  

Nascondi questo messaggio
Italiano English
Modifica History Actions

olsrtopologylogger.py

   1 # Copyright 2006 clauz at ninux dot org
   2 # released under the GNU Public License
   3 # 
   4 # OLSR Topology Logger. Dumps dot files from the OLSR dot plugin (http://www.olsr.org).
   5 # Usage: olsrtopologylogger.py [-t timeoutseconds] [-s sleepseconds] [{+,-}h]
   6 #                 [-x n] hostname [port]
   7 # 
   8 #         -t timeoutseconds       set the read timeout to timeoutseconds (default 120).
   9 #         -s sleepseconds         pause sleepseconds between reads (default 300).
  10 #         +h                      use human-readable date and time for filenames.
  11 #         -h                      use floating point seconds since the epoch for filenames (default).
  12 #         -x n            read and dump to file n times (-1=infinite) (default -1)
  13 #         hostname                the hostname
  14 #         port                    the port (default 2004)
  15 # 
  16 # example: olsrtopologylogger.py -x 3 -s 3 localhost
  17 
  18 import telnetlib
  19 import time
  20 import sys
  21 
  22 params={
  23 'PORT':2004, #tcp
  24 'HOST':'127.0.0.1',
  25 'TIMEOUT':120,
  26 'SLEEP':300,
  27 'HUMANREADABLE':False,
  28 'TIMES':-1,
  29 'EXT':'.dot'
  30 }
  31 
  32 def readfromdotplugin(host='127.0.0.1',port='2004',timeout=120, exitonerror=True):
  33 	try:
  34 		dotcon=telnetlib.Telnet(host,port)
  35 	except:
  36 		sys.stderr.write("Error. Can't connect to %s:%s.\n" % (host,port))
  37 		if exitonerror:
  38 			sys.exit(2)
  39 		else:
  40 			return ""
  41 	dotoutput=""
  42 	dotoutput=dotcon.read_until('}',timeout)
  43 	dotoutput+='\n'
  44 	dotcon.close()
  45 	return dotoutput
  46 #readfromdotplugin
  47 	
  48 def gettimestamp(humanreadable=False):
  49 	if humanreadable:
  50 		ts=time.asctime()
  51 		ts=ts.replace(' ','_')
  52 		ts=ts.replace(':','.')
  53 	else:
  54 		ts=time.time()	#seconds since the epoch
  55 	return ts
  56 #gettimestamp
  57 
  58 def processoptions(argvlist,params):
  59 	if len(argvlist)<2:
  60 		instructions= "OLSR Topology Logger. Dumps dot files from the OLSR dot plugin (http://www.olsr.org).\n"
  61 		instructions+="Usage: %s [-t timeoutseconds] [-s sleepseconds] [{+,-}h] \n" % (argvlist[0])
  62 		instructions+="\t\t[-x n] hostname [port]\n\n"
  63 		instructions+="\t-t timeoutseconds\tset the read timeout to timeoutseconds (default %d).\n" % (params['TIMEOUT'],)
  64 		instructions+="\t-s sleepseconds  \tpause sleepseconds between reads (default %d).\n" % (params['SLEEP'],)
  65 		instructions+="\t+h               \tuse human-readable date and time for filenames"
  66 		if params['HUMANREADABLE']:
  67 			instructions+=" (default).\n"
  68 		else:
  69 			instructions+=".\n"
  70 		instructions+="\t-h               \tuse floating point seconds since the epoch for filenames"
  71 		if not params['HUMANREADABLE']:
  72 			instructions+=" (default).\n"
  73 		else:
  74 			instructions+=".\n"
  75 		instructions+="\t-x n           \tread and dump to file n times (-1=infinite) (default %s)\n" % (params['TIMES'],)
  76 		instructions+="\thostname         \tthe hostname\n"
  77 		instructions+="\tport             \tthe port (default %s)\n" % (params['PORT'],)
  78 # 		print instructions
  79 		sys.stderr.write(instructions)
  80 		sys.exit(1)
  81 	else:
  82 		i=1
  83 		while i<len(argvlist):
  84 			arg=argvlist[i]
  85 			if arg=='+h':
  86 				params['HUMANREADABLE']=True
  87 			elif arg=='-h':
  88 				params['HUMANREADABLE']=False
  89 			elif arg=='-t':
  90 				try:
  91 					timeoutseconds=argvlist[i+1]
  92 					params['TIMEOUT']=int(timeoutseconds)
  93 					i+=1
  94 				except:
  95 					pass
  96 			elif arg=='-s':
  97 				try:
  98 					sleepseconds=argvlist[i+1]
  99 					params['SLEEP']=int(sleepseconds)
 100 					i+=1
 101 				except:
 102 					pass
 103  			elif arg=='-x':
 104 				try:
 105 					n=argvlist[i+1]
 106 					params['TIMES']=int(n)
 107 					i+=1
 108 				except:
 109 					pass
 110 			else:
 111 				params['HOST']=arg
 112 				try:
 113 					port=argvlist[i+1]
 114 					params['PORT']=int(port)
 115 					i+=1
 116 				except:
 117 					pass
 118 			i+=1
 119 #processoptions		
 120 
 121 
 122 if __name__=="__main__":
 123 	
 124 	processoptions(sys.argv,params)
 125 	
 126 	try:
 127 		firstiteration=True
 128 		iterations=params['TIMES']	
 129 		while iterations==-1 or iterations>0:
 130 			print "reading..."
 131 			dotoutput=readfromdotplugin(params['HOST'],params['PORT'],params['TIMEOUT'],firstiteration)
 132 			firstiteration=False
 133 			timestamp=gettimestamp(params['HUMANREADABLE'])
 134 			
 135 			filename='%s' % (timestamp,)
 136 			filename+=params['EXT']
 137 			
 138 			try:
 139 				try:
 140 					dotfile=file(filename,'r')
 141 					dotfile.close()
 142 					erstr="Warning! File %s already exists! Skipping...",(filename,)
 143 # 					sys.stderr.write(erstr)
 144 					print erstr
 145 				except IOError:
 146 					dotfile=file(filename,'w')
 147 					dotfile.write(dotoutput)
 148 					dotfile.close()
 149 					print "%s: %s created." % (time.asctime(),filename)
 150 			except:
 151 				sys.stderr.write("I/O Error!!")
 152 				sys.exit(2)
 153 			
 154 			
 155 			print "sleeping %d seconds..." % (params['SLEEP'],)
 156 			time.sleep(params['SLEEP'])
 157 			
 158 			if iterations>0: 
 159 				iterations-=1
 160 		#while
 161 	except KeyboardInterrupt:
 162 		pass