#!/bin/bash # Script d'import BDNB tous départements de France 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] BATIMENTS BDNB dva-maria - $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 for dept in 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 21 22 23 24 25 26 27 28 29 2A 2B 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 971 972 973 974 975 976 977 978 984 986 987 988 989 do 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 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 done lheure=$(date +%H:%M:%S) echo "Fin des traitements a $lheure" >> $log msmtp support@unikoffice.com < $log