geo_split.sh 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #!/bin/sh
  2. #
  3. # $Id$
  4. #
  5. # utility for displaying geographical break-down of usrloc population
  6. # it takes functional netgeo support for ser (currently, an
  7. # experimental unavailable feature)
  8. #
  9. DB_HOST=dbhost
  10. DB_USER=ser
  11. DB_PW=heslo
  12. # ---
  13. TMP=/tmp/geo_split.$$
  14. stats()
  15. {
  16. DOMAIN_CNT=`grep $1 $TMP | wc | awk ' { print $1 } '`
  17. if [ "$DOMAIN_CNT" -eq "0" ] ; then
  18. PC="0"
  19. else
  20. PC=`expr $DOMAIN_CNT \* 100 / $2`
  21. fi
  22. printf "$1: $DOMAIN_CNT $PC %%\n"
  23. grep -v $1 $TMP > $TMP.2
  24. mv $TMP.2 $TMP
  25. }
  26. mysql -h $DB_HOST --batch -u $DB_USER -p$DB_PW ser -e "select location from netgeo_cache" |
  27. awk -F '/' '
  28. BEGIN { line=0 }
  29. { line++ }
  30. line==1 { next; } # skip heading
  31. length()==0 { next; } # skip empty lines
  32. /^[A-Z][A-Z ]*\/[A-Z ]+/ { print $2; next;}
  33. /^[A-Z]+/ { print " " $1; next;}
  34. /^ [A-Z]+/ { print $1; next;}
  35. { print "error" > "/dev/stderr" }' |
  36. sort -b > $TMP
  37. export TOTAL_CNT=`wc $TMP|awk '{print $1}'`
  38. printf "Total: $TOTAL_CNT\n"
  39. (for i in AU DE US NL CZ UK RO RU TR TW SW JP CA HK IT AR BE CN FI GL IN KR SE UY; do
  40. stats $i $TOTAL_CNT
  41. done)
  42. #| sort
  43. cat $TMP
  44. rm $TMP*