parent
dcc7f3d186
commit
0323f5a3bb
11
config.py
11
config.py
|
|
@ -5,6 +5,17 @@ import sys
|
||||||
g_args = None
|
g_args = None
|
||||||
|
|
||||||
|
|
||||||
|
def get_servers():
|
||||||
|
js = read_json()
|
||||||
|
_servers = js["servers"]
|
||||||
|
servers_dic = {}
|
||||||
|
for s in _servers:
|
||||||
|
servers_dic[s] = {}
|
||||||
|
servers_dic[s]["name"] = s
|
||||||
|
servers_dic[s]["url"] = _servers[s]["url"]
|
||||||
|
return servers_dic
|
||||||
|
|
||||||
|
|
||||||
def read_json():
|
def read_json():
|
||||||
global g_args
|
global g_args
|
||||||
json_path = g_args.config
|
json_path = g_args.config
|
||||||
|
|
|
||||||
|
|
@ -4,23 +4,15 @@ import model
|
||||||
import config
|
import config
|
||||||
|
|
||||||
|
|
||||||
def get_servers():
|
|
||||||
js = config.read_json()
|
|
||||||
_servers = js["servers"]
|
|
||||||
servers_dic = {}
|
|
||||||
for s in _servers:
|
|
||||||
servers_dic[s] = {}
|
|
||||||
servers_dic[s]["name"] = s
|
|
||||||
servers_dic[s]["url"] = _servers[s]["url"]
|
|
||||||
return servers_dic
|
|
||||||
|
|
||||||
|
|
||||||
# file_size if byte
|
# file_size if byte
|
||||||
# longest_time seconds
|
# longest_time seconds
|
||||||
def download_file(chunk_size=4 * 1024, file_size=100 * 1024 * 1024, longest_time=60):
|
def download_file(chunk_size=4 * 1024, file_size=100 * 1024 * 1024, longest_time=60):
|
||||||
execution_datetime=datetime.datetime.now()
|
execution_datetime=datetime.datetime.now()
|
||||||
print(execution_datetime)
|
print("Download at {time}".format(time=execution_datetime))
|
||||||
servers = get_servers()
|
servers = config.get_servers()
|
||||||
for server_name in servers:
|
for server_name in servers:
|
||||||
server = servers[server_name]
|
server = servers[server_name]
|
||||||
url = server["url"]
|
url = server["url"]
|
||||||
|
|
|
||||||
3
main.py
3
main.py
|
|
@ -1,10 +1,11 @@
|
||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
|
|
||||||
import datetime
|
|
||||||
import downloader
|
import downloader
|
||||||
import config
|
import config
|
||||||
|
import ping
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
config.init_config()
|
config.init_config()
|
||||||
downloader.download_file()
|
downloader.download_file()
|
||||||
|
ping.ping()
|
||||||
print("Finished.")
|
print("Finished.")
|
||||||
|
|
|
||||||
17
model.py
17
model.py
|
|
@ -6,11 +6,24 @@ mysql_db = MySQLDatabase(
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def add_record(execution_datetime,server, speed):
|
def add_record(execution_datetime, server, speed):
|
||||||
execution_datetime_utc = execution_datetime-datetime.timedelta(hours=8)#转换为UTC时间。
|
execution_datetime_utc = execution_datetime - datetime.timedelta(
|
||||||
|
hours=8
|
||||||
|
) # 转换为UTC时间。
|
||||||
# print(now_timestamp)
|
# print(now_timestamp)
|
||||||
mysql_db.execute_sql(
|
mysql_db.execute_sql(
|
||||||
'insert into vps_download_speed(server,speed,datetime) values("{server}",{speed},"{datetime}")'.format(
|
'insert into vps_download_speed(server,speed,datetime) values("{server}",{speed},"{datetime}")'.format(
|
||||||
server=server, speed=speed, datetime=execution_datetime_utc
|
server=server, speed=speed, datetime=execution_datetime_utc
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def add_ping_record(execution_datetime, server, ping):
|
||||||
|
execution_datetime_utc = execution_datetime - datetime.timedelta(
|
||||||
|
hours=8
|
||||||
|
) # 转换为UTC时间。
|
||||||
|
mysql_db.execute_sql(
|
||||||
|
'insert into vps_ping(server,ping,datetime) values("{server}",{ping},"{datetime}")'.format(
|
||||||
|
server=server, ping=ping, datetime=execution_datetime_utc
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,30 @@
|
||||||
|
import config
|
||||||
|
import urllib.parse as parse
|
||||||
|
import ping3
|
||||||
|
import model
|
||||||
|
import datetime
|
||||||
|
|
||||||
|
|
||||||
|
def ping():
|
||||||
|
servers = config.get_servers()
|
||||||
|
execution_datetime = datetime.datetime.now()
|
||||||
|
print("Ping at {time}".format(time=execution_datetime))
|
||||||
|
for server_name in servers:
|
||||||
|
server = servers[server_name]
|
||||||
|
url = server["url"]
|
||||||
|
named_tup = parse.urlparse(url)
|
||||||
|
netloc = named_tup.netloc
|
||||||
|
port_loc = netloc.find(":")
|
||||||
|
if port_loc > 0:
|
||||||
|
addr = netloc[0:port_loc]
|
||||||
|
else:
|
||||||
|
addr = netloc
|
||||||
|
ping_delay = ping3.ping(addr, timeout=5) * 1000 # in millionsecond
|
||||||
|
print('Ping delay for {serv} is {ping_val}'.format(serv=server_name,ping_val=ping_delay))
|
||||||
|
model.add_ping_record(execution_datetime, server_name, ping_delay)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
config.init_config()
|
||||||
|
ping()
|
||||||
|
pass
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
requests
|
requests
|
||||||
peewee
|
peewee
|
||||||
mysqlclient
|
mysqlclient
|
||||||
|
ping3
|
||||||
Loading…
Reference in New Issue