Linux Ubuntu Automatisierungsskript?
Hallo,
ich verwalte einen Ubuntu vServer, der täglich um etwa 5:30 Uhr ein Datenpaket in Form eines Dumps erhält. Dieser Dump dient dazu, die MySQL-Datenbank mit aktuellen Daten zu aktualisieren. Bisher war es notwendig, den Dump manuell zu entpacken und in die Datenbank einzuspeisen, was auf Dauer recht mühsam ist.
Ich bin auf der Suche nach einer Möglichkeit, diesen Prozess zu automatisieren. Im Internet habe ich eine Lösung gefunden, die ich bereits umgesetzt habe. Dazu habe ich einen Cron-Job erstellt, indem ich crontab -e ausgeführt und folgenden Befehl hinzugefügt habe:
0 7 * * * bunzip2 -c /home/inus/inusdump.sql.bz2 | mysql -u julian -ppasswort inus
Dieser Cron-Job soll täglich um 7:00 Uhr ausgeführt werden, um den Dump zu entpacken und direkt in die MySQL-Datenbank zu importieren.
Könnte bitte einer bestätigen, ob diese Vorgehensweise technisch korrekt und sicher ist? Gibt es eventuell Verbesserungsvorschläge oder Bedenken, die ich beachten sollte?
Vielen Dank schonmal !
4 Antworten
Müsste funktionieren.
Aber erstell ne testdatabase und jag ihn einmal manuell durch - sowas sollte immer manuell testen, bevor man es automatisiert
Du mußt Dir in jedem Fall Gedanken machen, was im Fehelrfall passieren kann und sollte. mysql ist unterm Strich ein client, der die Verbindugn zur db je nach Kommunikationskanal verlieren kann. Bestimmte Dinge die bis zum Abbruch ausgeführt wurden, werden dann automatisch zurückgerollt, während der Client normalerweise einfach die Verbindung wieder aufbaut und weitermacht.
Du willst Dich mit sowas nicht erst dann konfrontiert sehen, wenn das in Produktion geht.
Ein weitere Punkt ist die Frage des konkurierenden Zugriffs und wie mysql (Client) das genau handhabt, respektive, ob der Dump in Transaktionen wrapped.
Technisch korrekt ja, aber das Design ist ziemlich ungeil.
Es gibt keine Konsistenzpruefung; was wenn dein bz2 File die falschen oder keine Daten enthaelt?
Es gibt kein Error Handling.
Passwort im Klartext im Cronjob ist nicht so prima, die Credentials kannst du in ein eigenes my.cnf file packen und das referenzieren.
Da du aber eh die Daten auf diesen Server bekommst, hast du vermutlich SSH Access oder kannst Agent Access draufpacken; sauberer waere es das mit einem Configmanagement deiner Wahl zu tun. Das faengt dann schonmal ne gute Ecke Fehler ab, kann dich informieren wenn was schief gelaufen ist, kann Validierungen durchfuehren usw. machen
technisch entpackt er die Datei wenn vorhanden und pipet sie ins mysql..... das posten von passwörtern hier ist jetzt allerdings nicht wirklich sicher
Danke. Ja, habe es einfach ohne nachzudenken hier eingefügt. habs aber direkt geändert