Hallo, ich habe eine Bash Script geschrieben das mir eine CSV datei per curl herunterladet und diese mit einer vorhanden Datei vergleicht, wenn die heruntergeladen Datei aktueller ist, als die vorhanden, werden weiter Scripts für die Verarbeitung gestartet.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #!/bin/bash PWD=`pwd` # CSV Datei wird mit curl heruntergleanden curl http://url.de/ > $PWD/data/NEW_datei.csv echo "Die Neue CSV Datei wurder heruntergleande..." # beide CSV Datein werden als Variablen abgespeichert oldCSV="$PWD/data/datei.csv" newCSV="$PWD/data/NEW_datei.csv" # Vergleicher beider datein. if diff "$oldCSV" "$newCSV" &> /dev/null ; then echo "Die beiden Datein sind gleich" else echo "Die heruntergeladene datei ist aktueller als die vorhande..." echo "Die alte datei wird überschrieben" cp $PWD/data/NEW_datei.csv $PWD/data/datei.csv echo "Der CSV Reader wird gestartet.." echo "Starte csv_reader_produkt.py" fi |
Das funktioniert auch sehr gut, allerdings würde ich das ganze jetzt vom Ergebnis, des ersten Bash Scripts automatisiert erneut starten wollen. Ich habe mir Cron angesehen aber wie kann ich es jetzt hinbekommen damit das Script abhängig vom Ergebnis gestartet wird?
Hatte gedacht ich lese die Uhrzeit aus addiere 1 oder 2 Stunden hinzu und das Script ändert dann den CronJob entsprechen aber leider geht das wohl nicht da man contab nur über crontab -e ändern kann, und wie sieht es aus wenn die if abfrage nun nicht zutrifft ?
Würde mich freuen wenn, jemand einen Rat weiß wie man das an besten umsetzen kann.