#!/bin/bash ladate=$(date +%Y%m%d-%H%M) lheure=$(date +%H:%M:%S) mybase=adresses myuser=osm_maj_user mypass=d66,OsmMaj.User log=adresses.log rm -f $log touch $log echo "To: support@unikoffice.com" >> $log echo "From: support@unikoffice.com" >> $log echo "Subject: [Import] ADRESSES dva-maria - $ladate" >> $log echo "" >> $log cd /var/osm rm -f adresses-france.gz rm -f adresses-france 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 adresses-${dept}.gz lheure=$(date +%H:%M:%S) echo "Debut du telechargement du departement $dept a $lheure" >> $log wget https://adresse.data.gouv.fr/data/ban/adresses/latest/csv/adresses-${dept}.csv.gz -O adresses-${dept}.gz if [ "$?" -ne "0" ] ; then echo "!!!! Désolé, le téléchargement ne semble ne pas fonctionner. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" >> $log else lheure=$(date +%H:%M:%S) echo "Telechargement du departement $dept termine a $lheure" >> $log gzip -d adresses-${dept}.gz rm -f cde_dept.sql touch cde_dept.sql echo "USE $mybase;" >> cde_dept.sql echo "DROP TABLE IF EXISTS cp$dept;" >> cde_dept.sql echo "CREATE TABLE cp$dept (id varchar(25) DEFAULT '', id_fantoir varchar(20) DEFAULT '', numero varchar(5) DEFAULT '', rue_bis varchar(5) DEFAULT '', rue varchar(60) DEFAULT '', cp varchar(5) DEFAULT '', code_insee varchar(5) DEFAULT '', ville varchar(60) DEFAULT '', code_insee_ancien varchar(5) DEFAULT '', ville_ancien varchar(60) DEFAULT '', x varchar(10) DEFAULT '', y varchar(10) DEFAULT '', gps_lng varchar(10) DEFAULT '', gps_lat varchar(10) DEFAULT '', type_position varchar(10) DEFAULT '', alias varchar(1) DEFAULT '', nom_ld varchar(60) DEFAULT '', ville_acheminement varchar(60) DEFAULT '', rue_afnor varchar(60) DEFAULT '', source varchar(10) DEFAULT '', source_rue varchar(10) DEFAULT '', certification tinyint(1) DEFAULT 0, cadastre varchar(14) DEFAULT '', KEY cp (cp), KEY gps_lat (gps_lat), KEY gps_lng (gps_lng)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;" >> cde_dept.sql echo "LOAD DATA LOCAL INFILE 'adresses-${dept}' INTO TABLE cp$dept CHARACTER SET 'UTF8mb4' FIELDS TERMINATED BY ';' IGNORE 1 LINES (id, id_fantoir, numero, rue_bis, rue, cp, code_insee, ville, code_insee_ancien, ville_ancien, x, y, gps_lng, gps_lat, type_position, alias, nom_ld, ville_acheminement, rue_afnor, source, source_rue, certification, cadastre);" >> cde_dept.sql echo "INSERT INTO _histo SET date_import=NOW(), dept='$dept', nb_adresses=(SELECT COUNT(*) FROM cp$dept);" >> cde_dept.sql mariadb --local-infile=1 -u$myuser -p$mypass $mybase < cde_dept.sql rm -f adresses-${dept} lheure=$(date +%H:%M:%S) echo "Importation sql des adresses 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