Subversion Repositories eFlore/Projets.eflore-projets

Compare Revisions

No changes between revisions

Ignore whitespace Rev 1058 → Rev 1059

/trunk/scripts/modules/osm/archives/shell/carto-osm-maj.sh
New file
0,0 → 1,91
#!/bin/bash
#
# Script de lancement de l'integration des donnees OSM pour le geocodage inverse
# Mohcen BENMOUNAH & Jean-Pascal MILCENT [19 juillet 2011]
#
ageEnSeconde(){ expr `date +%s` - `stat -c %Y $1`; };
 
if [ -f config.cfg ] ; then
source config.cfg
echo $DATE;
else
echo "Veuillez paramétrer le script en renommant le fichier 'config.defaut.cfg' en 'config.cfg'."
exit;
fi
 
echo "Export de l'emplacement du binaire Java dans la variable d'environnement JAVACMD";
export JAVACMD="$CHEMIN_JAVA"
 
echo "Export de l'emplacement du dossier tmp pour Osmosis"
export JAVACMD_OPTIONS="-Djava.io.tmpdir=$OSMOSIS_DOSSIER_TMP -Xmx4G"
 
if [ ! -f "$DOSSIER_OSM/$FICHIER_OSM" ] || [ `ageEnSeconde "$DOSSIER_OSM/$FICHIER_OSM"` -gt 86000 ] ; then
echo "Téléchargement du nouveau fichier PBF ...";
wget $URL_FICHIER_OSM -O "$DOSSIER_OSM/$FICHIER_OSM"
else
echo "Fichier $FICHIER_OSM existant à moins d'un jour.";
fi
 
if [ ! -f "$DOSSIER_OSM/$FICHIER_ZG_NEW" ] || [ `ageEnSeconde "$DOSSIER_OSM/$FICHIER_ZG_NEW"` -gt 86000 ] ; then
echo "Filtrage du fichier en cours ...";
$CHEMIN_OSMOSIS \
-v \
--read-pbf-fast "$DOSSIER_OSM/$FICHIER_OSM" workers=6 \
--tf accept-relations admin_level=8 \
--tf accept-relations type=boundary \
--tf accept-relations ref:INSEE=* \
--used-way \
--used-node \
--wx "$DOSSIER_OSM/$FICHIER_ZG_NEW"
fi
 
HEURE_DEBUT=`date +"%F %X"`;
echo "Début éxecution scripts php : $HEURE_DEBUT";
 
if [ ! -f "$DOSSIER_OSM/$FICHIER_ZG_OLD" ] ; then
echo "Création des tables osm en cours ...";
$CHEMIN_PHP -d memory_limit=$MEMORY_LIMIT_PHP $CHEMIN_SCRIPT/cli.php osm -a chargerStructureSql -v $VERBOSITE > $FICHIER_LOG
 
echo "Analyse du fichier osm en cours ...";
$CHEMIN_PHP -d memory_limit=$MEMORY_LIMIT_PHP $CHEMIN_SCRIPT/cli.php osm -a analyser -v $VERBOSITE -f "$DOSSIER_OSM/$FICHIER_ZG_NEW" >> $FICHIER_LOG
else
echo "Suppression du fichier DIFF existant en cours ...";
rm -f "$DOSSIER_OSM/$FICHIER_ZG_DIFF"
 
echo "Déduction de la différence en cours ...";
$CHEMIN_OSMOSIS\
--read-xml file="$DOSSIER_OSM/$FICHIER_ZG_NEW" \
--read-xml file="$DOSSIER_OSM/$FICHIER_ZG_OLD" \
--derive-change \
--write-xml-change file="$DOSSIER_OSM/$FICHIER_ZG_DIFF"
 
echo "Début de la mise à jour de base ...";
$CHEMIN_PHP -d memory_limit=$MEMORY_LIMIT_PHP $CHEMIN_SCRIPT/cli.php mise_a_jour -a MAJ -f "$DOSSIER_OSM/$FICHIER_ZG_DIFF" > $FICHIER_LOG
fi
 
echo "Renommage du fichier NEW en OLD en cours ...";
mv "$DOSSIER_OSM/$FICHIER_ZG_NEW" "$DOSSIER_OSM/$FICHIER_ZG_OLD" >> $FICHIER_LOG
 
echo "Traitement de l'ordre en cours ...";
$CHEMIN_PHP -d memory_limit=$MEMORY_LIMIT_PHP $CHEMIN_SCRIPT/cli.php osm -a ordre -v $VERBOSITE >> $FICHIER_LOG
 
echo "Remplissage des polygones en cours ...";
$CHEMIN_PHP -d memory_limit=$MEMORY_LIMIT_PHP $CHEMIN_SCRIPT/cli.php osm -a polygone -v $VERBOSITE >> $FICHIER_LOG
 
echo "Remise de l'ordre à zéro en cours ...";
$CHEMIN_PHP -d memory_limit=$MEMORY_LIMIT_PHP $CHEMIN_SCRIPT/cli.php osm -a zero -v $VERBOSITE >> $FICHIER_LOG
 
echo "Traitement de l'ordre des polygones incomplets en cours ...";
$CHEMIN_PHP -d memory_limit=$MEMORY_LIMIT_PHP $CHEMIN_SCRIPT/cli.php osm -a ordonnerPolygoneInc -v $VERBOSITE >> $FICHIER_LOG
 
echo "Remplissage des polygones incomplets en cours ...";
$CHEMIN_PHP -d memory_limit=$MEMORY_LIMIT_PHP $CHEMIN_SCRIPT/cli.php osm -a remplirPolygoneInc -v $VERBOSITE >> $FICHIER_LOG
 
echo "Renommage des polygones incomplets en cours ...";
$CHEMIN_PHP -d memory_limit=$MEMORY_LIMIT_PHP $CHEMIN_SCRIPT/cli.php osm -a renommer -v $VERBOSITE >> $FICHIER_LOG
 
echo "Definition des centroïdes en cours ...";
$CHEMIN_PHP -d memory_limit=$MEMORY_LIMIT_PHP $CHEMIN_SCRIPT/cli.php osm -a centre -v $VERBOSITE >> $FICHIER_LOG
 
HEURE_FIN=`date +"%F %X"`;
echo "Fin éxecution scripts php : $HEURE_FIN";
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/trunk/scripts/modules/osm/archives/shell/config.defaut.cfg
New file
0,0 → 1,26
# Binaires
CHEMIN_JAVA="/usr/local/jre/bin/java"
CHEMIN_PHP="/usr/local/php/5.5/bin/php"
CHEMIN_SCRIPT="/home/apitela/www/scripts/eflore"
 
# Dossiers, fichiers & urls
# Pour tester : http://download.geofabrik.de/europe/france/languedoc-roussillon-latest.osm.pbf
URL_FICHIER_OSM="http://download.geofabrik.de/europe/france-latest.osm.pbf"
DOSSIER_OSM="/home/jpm/web/eflore/eflore-projets/donnees/osm"
FICHIER_OSM="fr.osm.pbf"
FICHIER_ZG_NEW="fr_communes_new.osm"
FICHIER_ZG_OLD="fr_communes_old.osm"
FICHIER_ZG_DIFF="fr_communes_diff.osm"
 
# Osmosis
CHEMIN_OSMOSIS="/usr/local/sbin/osmosis-0.43.1/bin"
OSMOSIS_DOSSIER_TMP="$DOSSIER_OSM/tmp"
 
# Logs
VERBOSITE=3
DATE=`date +"%F"`
CHEMIN_LOG="$DOSSIER_OSM/logs"
FICHIER_LOG="$CHEMIN_LOG/analyse_${DATE}.log"
 
# Paramètres PHP
MEMORY_LIMIT_PHP="8000M"
/trunk/scripts/modules/osm/archives/shell/carto-osm-service.sh
New file
0,0 → 1,41
#!/bin/sh
#/etc/rc.d/init.d/
#
# Jean-Pascal MILCENT & Mohcen BENMOUNAH [19 juillet 2011]
# Service de lancement des scripts d'integration des donnees OSM pour le service de Geocadage Inverse
#
case "$1" in
 
start)
 
echo "Demarrage de carto-osm-cron :"
nohup /usr/local/sbin/carto-osm-cron 1>/dev/null 2>/dev/null &
 
;;
 
stop)
 
echo "Arret de carto-osm-cron"
PID=`ps -eaf | grep carto-osm-cron | grep -v grep | tr -s ' ' | cut -d' ' -f2 | head -n1`
kill -9 ${PID}
 
;;
 
status)
 
echo -n "Voici les PID du processus carto-osm-cron :"
PID=`ps -eaf | grep carto-osm-cron | grep -v grep | tr -s ' ' | cut -d' ' -f2 | head -n1`
echo ${PID}
 
;;
 
 
*)
 
echo "Usage: {start|stop|status}"
 
exit 1
 
;;
 
esac
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/trunk/scripts/modules/osm/archives/shell/carto-osm-cron.sh
New file
0,0 → 1,30
#!/bin/bash
#
# Mohcen BENMOUNAH & Jean-Pascal MILCENT [19 juillet 2011]
# /etc/init.d/carto-osm : demarage/arrete/etat du cron de l'integration des donnees OSM pour le Geocodage Inverse (carto-osm)
# Lancement toutes les semaines le samedi matin après 3h00
 
while true
do
JOUR=$(date "+%u")
# Si nous sommes samedi (=6)
if [ $JOUR -eq 6 ] ; then
HEURE=$(date "+%H")
# Si nous sommes à 3 heures du matin
if [ $HEURE -eq 3 ] ; then
logger "carto-osm-maj : lancement script"
sudo -u telabotap /usr/local/sbin/carto-osm-maj
logger "carto-osm-maj : arret script"
# Nous retenterons de vérifier jour et heure dans 6 jours
sleep 6d
else
# Tentative toutes les heures
logger "carto-osm-maj : tentative heure $HEURE"
sleep 1h
fi
else
# Tentative tous les jours
logger "carto-osm-maj : tentative jour $JOUR"
sleep 1d
fi
done
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/trunk/scripts/modules/osm/archives/shell
New file
Property changes:
Added: svn:ignore
+config.cfg