Was ist der effizienteste Weg, um einen cron-Job zu implementieren, um eine MySQL-Datenbank zu sichern und mir per E-Mail zu senden?

576
James Valente

Was wäre der effizienteste Weg, um eine MySQL-Datenbank automatisch zu sichern, zu speichern und an ein bestimmtes Konto per E-Mail zu senden?

Ich bin ein bisschen paranoid über den Verlust der Datenbank meines Forums und normalerweise bin ich während der Woche beschäftigt und vergesse oft, eine wöchentliche Datensicherung durchzuführen (stattdessen zweiwöchentlich oder monatlich zu machen, was nicht so schlimm ist, aber seltener als ich.) würde gerne). Die Einrichtung mit einem Cronjob und einer E-Mail (oder FTP / SFTP, da ich gerade begriff, dass eine der Datenbanken zu groß ist, um sie in einer E-Mail anzufügen) wäre viel einfacher und weniger anfällig zu mir vergessen.

Wie ich es jetzt betrachte, wäre:

mysqldump dbname> YYYY-MM-DD_dbname.sql gzip YYYY-MM-DD_dbname.sql Senden Sie entweder YYYY-MM-DD_dbname.sql.gz als Anhang zu einer E-Mail-Adresse oder, senden Sie es an einen anderen Server und senden Sie es eine E-Mail, die mir mitteilt, dass das Backup und die Übertragung erfolgreich waren.

Gibt es einen besseren Weg, dies zu erreichen? Gibt es Beispiele dafür, wie Sie das erreichen würden?

0

1 Antwort auf die Frage

1
David Z

Ich glaube nicht, dass Sie viel besser machen können als das, was Sie haben. Ich würde wahrscheinlich etwas wie das Folgende verwenden:

  • Erstellen Sie den Datenbankspeicherauszug
  • gzip oder anderweitig komprimieren (technisch optional)
  • Verwenden Sie scpoder, rsyncum die Datei auf einen anderen Server zu kopieren
  • Führen Sie eine Prüfsumme auf dem Remote-Server aus, um die Kopie zu überprüfen (optional).
  • den ursprünglichen Datenbankspeicherauszug löschen (optional)
  • Senden Sie eine E-Mail mit dem Hinweis auf Erfolg

Wenn ein Schritt fehlschlägt, beenden Sie den Vorgang und senden Sie sofort eine E-Mail, in der der Fehler beschrieben wird. (Ich nehme an, Sie haben die notwendigen Werkzeuge zur Verfügung, zum Beispiel rsyncoder scp, sha1sumoder md5sum, gzip, mailoder sendmailoder gleichwertig)

I wouldn't mark the checksum part as optional. The day the db crashes and you're all happy because you have a recent backup, only to find out it was corrupted is not something I would like to experience. In addition, I'd probably use xz instead of gzip, only because the resulting file is smaller in size. tamtakos vor 13 Jahren 0
@tamtakos: Wenn Sie den Schritt der Prüfsumme überspringen, wird der Datenbank-Dump übertragen, solange bei den anderen Schritten nichts schief geht. Das macht es optional. (Im Gegensatz zum "scp" -Schritt, der nicht weggelassen werden kann.) Ich denke, Sie meinen damit, dass die Prüfsumme dringend empfohlen werden sollte, und damit stimme ich zu. David Z vor 13 Jahren 0