Publié le: 2012-06-24

GeoIP autoupdate

Si vous utilisez GeoIP dans vos applications, il se peut qu’un paquet de repository ne vous convienne pas car il peut ne pas être mis à jour assez rapidement.

Je vous proposer ci-dessous un petit script qui va mettre à jour votre base GeoIP depuis le site officiel si celle-ci est différente de la vôtre. Remplacez la commande de téléchargement par wget ou curl si vous utilisez autre chose qu’un FreeBSD.

N’oubliez pas de redémarrer/recharger les services qui en auraient besoin.

#! /bin/sh

# If you need to use a proxy uncomment this line
# export HTTP_PROXY=http://proxy.example.org:3128
DOWNLOAD_CMD="fetch"
DESTFILE="/usr/local/www/geoip/GeoIP.dat"

mkdir ./tmp
cd ./tmp
$DOWNLOAD_CMD http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
if [ $? -ne 0 ]; then
     echo "GeoIP download error !"
     exit;
fi

gunzip GeoIP.dat.gz

SHASRC=$(sha256 -q $DESTFILE)
SHANEW=$(sha256 -q GeoIP.dat)

echo $SHASRC
echo $SHANEW

if [ "$SHASRC" != "$SHANEW" ]; then
     mv $DESTFILE "$DESTFILE".old
     mv GeoIP.dat $DESTFILE
     chown www:www $DESTFILE
fi

cd ..
rm -R ./tmp