#!/bin/bash # Script de test import BDNB département 35 ladate=$(date +%Y%m%d-%H%M) lheure=$(date +%H:%M:%S) mybase=batiments myuser=osm_maj_user mypass=d66,OsmMaj.User log=traite_batiments.log rm -f $log touch $log echo "To: support@unikoffice.com" >> $log echo "From: support@unikoffice.com" >> $log echo "Subject: [Import TEST] BATIMENTS BDNB dept 35 - $ladate" >> $log echo "" >> $log cd /var/osm millesime="2024-10-a" base_url="https://open-data.s3.fr-par.scw.cloud/bdnb_millesime_${millesime}/millesime_${millesime}_dep" # Création du dossier csv s'il n'existe pas mkdir -p csv dept="35" rm -f batiments-${dept}.zip lheure=$(date +%H:%M:%S) echo "Debut du telechargement du departement $dept a $lheure" >> $log wget ${base_url}${dept}/open_data_millesime_${millesime}_dep${dept}_csv.zip -O batiments-${dept}.zip if [ "$?" -ne "0" ] ; then echo "!!!! Désolé, le téléchargement ne semble ne pas fonctionner pour le dept $dept. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" >> $log msmtp support@unikoffice.com < $log exit 1 else lheure=$(date +%H:%M:%S) echo "Telechargement du departement $dept termine a $lheure" >> $log # Extraction du ZIP (contient déjà un dossier csv/) unzip -o batiments-${dept}.zip lheure=$(date +%H:%M:%S) echo "Extraction terminee" >> $log # Copie du template SQL et remplacement de 999 par le département cp traite_batiments.sql traite_batiments_${dept}.sql sed -i "s/999/$dept/g" traite_batiments_${dept}.sql lheure=$(date +%H:%M:%S) echo "Import SQL du departement $dept commence a $lheure" >> $log mariadb --local-infile=1 -u$myuser -p$mypass $mybase < traite_batiments_${dept}.sql if [ "$?" -ne "0" ]; then echo "!!!! Erreur lors de l'import SQL pour le dept $dept !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" >> $log else echo "Import SQL reussi" >> $log fi # Nettoyage complet après import rm -f csv/*.csv rm -f csv/*.csvt rm -f csv/*.prj rm -rf csv/doc rm -f batiments-${dept}.zip rm -f traite_batiments_${dept}.sql lheure=$(date +%H:%M:%S) echo "Importation sql des batiments du departement $dept terminee a $lheure" >> $log fi lheure=$(date +%H:%M:%S) echo "Fin du traitement a $lheure" >> $log msmtp support@unikoffice.com < $log