diff --git a/ffmap/web/api.py b/ffmap/web/api.py index bd3a85e..4a66a1a 100755 --- a/ffmap/web/api.py +++ b/ffmap/web/api.py @@ -87,12 +87,12 @@ def alfred(): import_nodewatcher_xml(mysql, mac, xml) mysql.commit() r.headers['X-API-STATUS'] = "ALFRED data imported" - detect_offline_routers(mysql) - delete_orphaned_routers(mysql) - delete_old_stats(mysql) - record_global_stats(mysql) - record_hood_stats(mysql) - update_mapnik_csv(mysql) + #detect_offline_routers(mysql) + #delete_orphaned_routers(mysql) + #delete_old_stats(mysql) + #record_global_stats(mysql) + #record_hood_stats(mysql) + #update_mapnik_csv(mysql) mysql.close() #pr.disable() #s = io.StringIO() diff --git a/scripts/calcglobalstats.py b/scripts/calcglobalstats.py new file mode 100755 index 0000000..4d34ec7 --- /dev/null +++ b/scripts/calcglobalstats.py @@ -0,0 +1,26 @@ +#!/usr/bin/python3 + +# Execute every 5 min, 2 mins after alfred comes in (sleep 120 in cron) + +import os +import sys +sys.path.insert(0, os.path.abspath(os.path.dirname(__file__) + '/' + '..')) + +from ffmap.routertools import * +from ffmap.maptools import * +from ffmap.mysqltools import FreifunkMySQL +from ffmap.stattools import record_global_stats, record_hood_stats + +import time +start_time = time.time() + +mysql = FreifunkMySQL() +detect_offline_routers(mysql) +delete_orphaned_routers(mysql) +#delete_old_stats(mysql) # Only execute once daily, takes 2 minutes +record_global_stats(mysql) +record_hood_stats(mysql) +update_mapnik_csv(mysql) +mysql.close() + +print("--- %s seconds ---" % (time.time() - start_time)) diff --git a/scripts/deletestats.py b/scripts/deletestats.py new file mode 100755 index 0000000..1384a44 --- /dev/null +++ b/scripts/deletestats.py @@ -0,0 +1,19 @@ +#!/usr/bin/python3 + +# Execute once daily, also 2 min after full 5 mins (so it does not coincide with alfred) + +import os +import sys +sys.path.insert(0, os.path.abspath(os.path.dirname(__file__) + '/' + '..')) + +from ffmap.routertools import delete_old_stats +from ffmap.mysqltools import FreifunkMySQL + +import time +start_time = time.time() + +mysql = FreifunkMySQL() +delete_old_stats(mysql) +mysql.close() + +print("--- %s seconds ---" % (time.time() - start_time)) diff --git a/scripts/setupcron.sh b/scripts/setupcron.sh new file mode 100755 index 0000000..1195642 --- /dev/null +++ b/scripts/setupcron.sh @@ -0,0 +1,18 @@ +#!/bin/sh + +monpath=/data/fff/fff-monitoring + +if crontab -l | grep -q "$monpath" ; then + echo "Cron already set." + exit 1 +fi + +# Runs every 5 min and waits 2 min +(crontab -l 2>/dev/null; echo "2-59/5 * * * * $monpath/scripts/calcglobalstats.py") | crontab - + +# Runs at 4:02 +(crontab -l 2>/dev/null; echo "2 4 * * * $monpath/scripts/deletestats.py") | crontab - + +echo "Cron set successfully." +exit 0 +