]> git.openstreetmap.org Git - nominatim.git/blobdiff - utils/cron_banip.sh
switch attributions to ODbL
[nominatim.git] / utils / cron_banip.sh
index f40a4227febc4855b64073ab903f7bd3b3fbf8b4..2e0c8dfb60d51d0d781a27d3641b53082e296e25 100755 (executable)
@@ -1,4 +1,4 @@
-#!/bin/bash -x
+#!/bin/bash
 #
 # Create or update the list of temporarily banned IPs.
 #
@@ -23,6 +23,11 @@ SRCHSHORT_LIMIT='10 min'
 
 PSQLCMD='psql -qtA -d nominatim'
 
+curload=`cat /proc/loadavg | sed 's:[. ].*::'`
+if [ "$curload" -gt "15" ]; then
+  REVSHORT_LIMIT=$((REVSHORT_LIMIT/2))
+fi
+
 # Blocking candidates
 $PSQLCMD > $BLOCKEDFILE.newblocks << ENDOFQUERY
 SELECT ipaddress FROM
@@ -70,10 +75,12 @@ if [ "x$blocked" == "x" ]; then
   mv $BLOCKEDFILE.newblocks $BLOCKEDFILE 
 else
     $PSQLCMD > $BLOCKEDFILE.newlifted << ENDOFQUERY
+    SELECT column1 FROM (
     VALUES ('$blocked')
     EXCEPT
     (SELECT DISTINCT ipaddress FROM new_query_log
      WHERE starttime > now() - interval '$COOLOFF_PERIOD')
+    ) as q ORDER BY column1;
 ENDOFQUERY
 
     no_lifted=`cat $BLOCKEDFILE.newlifted | wc -w`