X-Git-Url: https://git.openstreetmap.org/chef.git/blobdiff_plain/c9f9ba946428aeefa98442e667cc45a954ea8c16..a19f614c86504b80dd424b5cbca80d55806e00d1:/cookbooks/nominatim/templates/default/clean-db-nominatim.erb diff --git a/cookbooks/nominatim/templates/default/clean-db-nominatim.erb b/cookbooks/nominatim/templates/default/clean-db-nominatim.erb index a15ef1e31..2930e151d 100644 --- a/cookbooks/nominatim/templates/default/clean-db-nominatim.erb +++ b/cookbooks/nominatim/templates/default/clean-db-nominatim.erb @@ -12,9 +12,37 @@ for i in `seq 0 246`; do psql -q -d nominatim -c "VACUUM ANALYSE search_name_${i}" done -<% if node[:postgresql][:settings][:defaults][:archive_mode] == "on" -%> - # Cleanup archive directory -find -L /data/postgresql-archive -mmin +1440 -print0 | xargs -0r rm +oldest=`date +%s` + +for fl in <%= @streaming_clients %>; do + lastupdate=`wget -O - -q http://${fl}.openstreetmap.org/last_update.php` + if [[ "$?" != "0" ]]; then + oldest=0 + break + else + epoch=`date +%s -d "$lastupdate"` + if [[ "$epoch" -lt "$oldest" ]]; then + oldest=$epoch + fi + fi +done + + +if [[ "$oldest" != "0" ]]; then + now=`date +%s` + timeago=$(( ( $now - $oldest ) / 60 + 180 )) + if [[ "$timeago" -le "180" ]]; then + echo "Oldest is in the future, something is wrong." + exit(1) + fi + + echo "find -L <%= @archive_dir %> -mmin +$timeago -print0 | xargs -0r rm" +fi + +diskfree=`df --output=pcent <%= @archive_dir %> | tail -n 1 | sed s:[^0-9.]::g -<% end -%> +if [[ "$diskfree" -lt 10 ]]; then + echo "WAL archives running out of space. Stopping updates." + touch <%= @update_stop_file %> +fi