|
@@ -0,0 +1,114 @@
|
|
|
+import urllib.request
|
|
|
+
|
|
|
+import random
|
|
|
+import sys
|
|
|
+import os
|
|
|
+
|
|
|
+from datetime import datetime
|
|
|
+from datetime import timedelta
|
|
|
+
|
|
|
+import dateutil.parser
|
|
|
+
|
|
|
+import sys
|
|
|
+def cprint(*text,color="blue",space=" ",end="\n"):
|
|
|
+ #return 0 #disable print dbg
|
|
|
+ if not color:
|
|
|
+ print(text)
|
|
|
+ return 0
|
|
|
+
|
|
|
+ if color == "green":
|
|
|
+ txt = '\033[92m'
|
|
|
+ elif color == "red":
|
|
|
+ txt = '\033[0;31m\033[1m'
|
|
|
+ elif color == "yellow":
|
|
|
+ txt = '\033[93m\033[1m'
|
|
|
+ elif color == "cyan":
|
|
|
+ txt = '\033[96m'
|
|
|
+ else:
|
|
|
+ txt = '\033[94m'
|
|
|
+ for t in text:
|
|
|
+ txt += str(t ) +" "
|
|
|
+ #HEADER = '\033[95m'
|
|
|
+ #OKBLUE = '\033[94m'
|
|
|
+ #OKCYAN = '\033[96m'
|
|
|
+ #OKGREEN = '\033[92m'
|
|
|
+ #WARNING = '\033[93m'
|
|
|
+ #FAIL = '\033[91m'
|
|
|
+ #ENDC = '\033[0m'
|
|
|
+ #BOLD = '\033[1m'
|
|
|
+ #UNDERLINE = '\033[4m'
|
|
|
+ txt += '\033[0m'
|
|
|
+ print(txt,end=end)
|
|
|
+ #return txt
|
|
|
+ try:
|
|
|
+ sys.stdout.flush() # to grep output
|
|
|
+ except BrokenPipeError as e:
|
|
|
+ print("BROKEN PIPE ERROR CPRINT = EXIT")
|
|
|
+ #exit()
|
|
|
+
|
|
|
+
|
|
|
+host = "http://uxsrv.de"
|
|
|
+host = "http://librelight.de"
|
|
|
+#host = "https://google.com"
|
|
|
+host += "?r={}".format(random.randint(1_000_000_000,9_000_000_000))
|
|
|
+
|
|
|
+print(sys.argv)
|
|
|
+
|
|
|
+if "-v" in sys.argv:print(host)
|
|
|
+if "-v" in sys.argv:print()
|
|
|
+
|
|
|
+import ssl
|
|
|
+
|
|
|
+#ignore cert warning ... localtime is not correct
|
|
|
+ctx = ssl.create_default_context()
|
|
|
+ctx.check_hostname = False
|
|
|
+ctx.verify_mode = ssl.CERT_NONE
|
|
|
+
|
|
|
+now = datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S')
|
|
|
+now = dateutil.parser.parse(now)
|
|
|
+now = now.replace(tzinfo=None)
|
|
|
+try:
|
|
|
+ with urllib.request.urlopen(host,context=ctx) as response:
|
|
|
+ #print(dir(response) )
|
|
|
+ date = response.getheader("date")
|
|
|
+ if "-v" in sys.argv:print("response:".ljust(20," "),date)
|
|
|
+
|
|
|
+ date = dateutil.parser.parse(date)
|
|
|
+
|
|
|
+ date = date.replace(tzinfo=None)
|
|
|
+ delta = date-now
|
|
|
+ if "-v" in sys.argv:print("delta: ".ljust(20," "),delta,type(delta))
|
|
|
+
|
|
|
+ #print( timedelta(seconds=100))
|
|
|
+ max_delta=timedelta(seconds=100)
|
|
|
+ min_delta=timedelta(seconds=-100)
|
|
|
+ print("-------")
|
|
|
+ print( delta > max_delta , delta < min_delta)
|
|
|
+ if delta > min_delta and delta < max_delta:
|
|
|
+ cprint(delta,"delta is OK",color="green")
|
|
|
+ exit()
|
|
|
+
|
|
|
+
|
|
|
+ cprint(delta,"delta is to high",color="red")
|
|
|
+
|
|
|
+ if "-v" in sys.argv:print("parse: ".ljust(20," "),date)
|
|
|
+ date = date.strftime("%Y-%m-%d %H:%M:%S")
|
|
|
+
|
|
|
+ ndate = os.popen("date").read().strip()
|
|
|
+ print("current date: ".ljust(20," "),ndate)
|
|
|
+
|
|
|
+ # set local linux date
|
|
|
+ CMD = "/usr/bin/date -u -s '{}' > /dev/null ".format(date)
|
|
|
+ print("CMD:".ljust(20," "),CMD)
|
|
|
+ os.system(CMD)
|
|
|
+
|
|
|
+ date = os.popen("date").read().strip()
|
|
|
+ print("current date: ".ljust(20," "),date)
|
|
|
+
|
|
|
+ # set hwclock
|
|
|
+ date = os.popen("/usr/sbin/hwclock").read().strip()
|
|
|
+ print("hwclock: ".ljust(20," "),date)
|
|
|
+ date = os.popen("/usr/sbin/hwclock -w").read().strip()
|
|
|
+ print("hwclock: ".ljust(20," "),date)
|
|
|
+except Exception as e:
|
|
|
+ cprint("ERR",e,color="red")
|