Auf der Internetseite des Bayerischen Rundfunk kann man sich für die jeweils letzten 3 Std. das aktuelle Regenradar anschauen. Auf dem Webserver selber werden aber die Daten der letzten 21 Tage zwischengespeichert.
Mit dem nachfolgenden Script getRadar.sh, kann man die Daten automatisch per Cron-Job oder manuell durch Parameter Übergabe abrufen.
wget http://www.shemel.de/download/bash/getRadar.sh
chmod +x getRadar.sh
Parameter Aufruf mit UTC Time
./getRadar.sh 2018-08-20 00:00:00
Cron-Job Aufruf (jede volle Std. mit 55min) für crontab -e
55 * * * * /home/pi/regen/getRadar.sh >> /home/pi/regen/myscript.log 2>&1
Quellcode:
#!/bin/bash
#
echo '------------------------------------'
echo '| Hole Wetterradar-Daten von br.de |'
echo '| (c) Sebastian Hemel, 2018 |'
echo '------------------------------------'
echo ' '
#Aufruf per cron job am Besten jede volle Stunde mit 55min
#crontab -e
#55 * * * * /home/pi/regen/getRadar.sh >> /home/pi/regen/myscript.log 2>&1
#Beispiele der Dateien, Benamung erfolgt nach UTC (date -u), Bilder stehen ca. 10min nach der eigentlichern UTC Zeit zur Verfuegung
#http://www.br.de/wtr-data/img/radar_aroona/2018_08_08/aroona.radar.180808_0815.png
#http://www.br.de/wtr-data/img/radar_aroona/2018_08_08/aroona.radar.180808_0830.png
#http://www.br.de/wtr-data/img/radar_aroona/2018_08_09/aroona.radar.180809_1130.png
#
#Achtung beim Tageswechsel:
#http://www.br.de/wtr-data/img/radar_aroona/2018_08_20/aroona.radar.180820_2145.png => OK, 23:45
#http://www.br.de/wtr-data/img/radar_aroona/2018_08_20/aroona.radar.180820_2200.png => ERROR => http://www.br.de/wtr-data/img/radar_aroona/2018_08_21/aroona.radar.180820_2200.png
scriptFolder=/home/pi/aroona.radar.*
copyFolder=/home/pi/regen/radar
if [ $1 ]
then
echo Uebergabeparameter: $1 $2
echo ' '
Date=$1
Time=$2
DateTime=$Date' '$Time
##echo $DateTime
DateArray=()
for X in {00..59} ; # check every minute
do
# use manual date an time
eval $(date -d "${DateTime}" -u +Y=%y\;m=%m\;d=%d\;H=%H\;M=%M)
#eval $(date -d '2018-08-20 22:00:00' -u +Y=%y\;m=%m\;d=%d\;H=%H\;M=%M)
M=$X
[[ "$M" < "15" ]] && M=00 # cater for octal clash
M=$(((M/15)*15))
((M==0)) && M=00 # the math returns 0, so make it 00
##echo $Y.$m.$d $H:$M
DateArray+=($Y$m$d'_'$H$M) # write in to array for the file name
done
#echo '--DateArray--'
#for i in ${DateArray[@]}; do
# echo $i
#done
# use manual date an time for the folder
eval $(date -d "${DateTime}" -u +Y=%Y\;m=%m\;d=%d\;H=%H\;M=%M)
DateTimePlusOneDay="${DateTime}+1 days"
typeset -i i=0 max=${#DateArray[*]}
while (( i < max ))
do
a=$( expr "$i" + 1 )
# compare the array entries
if [[ ${DateArray[$i]} != ${DateArray[$a]} ]]; then
#catch error on midnight UTC
if [ "$H" == "22" ]
then
eval $(date -d "${DateTimePlusOneDay}" -u +Y=%Y\;m=%m\;d=%d\;H=%H\;M=%M)
echo "wget http://www.br.de/wtr-data/img/radar_aroona/"$Y"_"$m"_"$d"/aroona.radar."${DateArray[$i]}".png"
wget http://www.br.de/wtr-data/img/radar_aroona/"$Y"_"$m"_"$d"/aroona.radar."${DateArray[$i]}".png
elif [ "$H" == "23" ]
then
eval $(date -d "${DateTimePlusOneDay}" -u +Y=%Y\;m=%m\;d=%d\;H=%H\;M=%M)
echo "wget http://www.br.de/wtr-data/img/radar_aroona/"$Y"_"$m"_"$d"/aroona.radar."${DateArray[$i]}".png"
wget http://www.br.de/wtr-data/img/radar_aroona/"$Y"_"$m"_"$d"/aroona.radar."${DateArray[$i]}".png
else
echo "wget http://www.br.de/wtr-data/img/radar_aroona/"$Y"_"$m"_"$d"/aroona.radar."${DateArray[$i]}".png"
wget http://www.br.de/wtr-data/img/radar_aroona/"$Y"_"$m"_"$d"/aroona.radar."${DateArray[$i]}".png
fi
#echo "${DateArray[$i]}"
#echo "wget http://www.br.de/wtr-data/img/radar_aroona/"$Y"_"$m"_"$d"/aroona.radar."${DateArray[$i]}".png"
#wget http://www.br.de/wtr-data/img/radar_aroona/"$Y"_"$m"_"$d"/aroona.radar."${DateArray[$i]}".png
fi
i=i+1
done
########################################################################################################################################
else
echo Es wurde kein Uebergabeparameter eingegeben! Verwenden Sie z.B. \"./getRadar.sh 2018-08-20 00:00:00\" UTC
echo ' '
DateArray=()
for X in {00..59} ; # check every minute
do
eval $(date -u +Y=%y\;m=%m\;d=%d\;H=%H\;M=%M)
M=$X
[[ "$M" < "15" ]] && M=00 # cater for octal clash
M=$(((M/15)*15))
((M==0)) && M=00 # the math returns 0, so make it 00
##echo $Y.$m.$d $H:$M
DateArray+=($Y$m$d'_'$H$M)
done
# use manual date an time for the folder
eval $(date -u +Y=%Y\;m=%m\;d=%d\;H=%H\;M=%M)
typeset -i i=0 max=${#DateArray[*]}
while (( i < max ))
do
a=$( expr "$i" + 1 )
# compare the array entries
if [[ ${DateArray[$i]} != ${DateArray[$a]} ]]; then
#catch error on midnight UTC
if [ "$H" == "22" ]
then
eval $(date -d tomorrow -u +Y=%Y\;m=%m\;d=%d\;H=%H\;M=%M)
echo "wget http://www.br.de/wtr-data/img/radar_aroona/"$Y"_"$m"_"$d"/aroona.radar."${DateArray[$i]}".png"
wget http://www.br.de/wtr-data/img/radar_aroona/"$Y"_"$m"_"$d"/aroona.radar."${DateArray[$i]}".png
elif [ "$H" == "23" ]
then
eval $(date -d tomorrow -u +Y=%Y\;m=%m\;d=%d\;H=%H\;M=%M)
echo "wget http://www.br.de/wtr-data/img/radar_aroona/"$Y"_"$m"_"$d"/aroona.radar."${DateArray[$i]}".png"
wget http://www.br.de/wtr-data/img/radar_aroona/"$Y"_"$m"_"$d"/aroona.radar."${DateArray[$i]}".png
else
eval $(date -u +Y=%Y\;m=%m\;d=%d\;H=%H\;M=%M)
echo "wget http://www.br.de/wtr-data/img/radar_aroona/"$Y"_"$m"_"$d"/aroona.radar."${DateArray[$i]}".png"
wget http://www.br.de/wtr-data/img/radar_aroona/"$Y"_"$m"_"$d"/aroona.radar."${DateArray[$i]}".png
fi
fi
i=i+1
done
fi
#move files to folder
mv $scriptFolder $copyFolder
Keine Kommentare:
Kommentar veröffentlichen