Der einfachste Weg, diese Aufgabe zu automatisieren, ist die Kombination von MySQL-Dumps und einem Cronjob. Auf dieser und anderen Internetseiten finden Sie viele Informationen zu diesem Thema, die jedoch der Vollständigkeit halber dienen sollen:
Erstellen Sie eine mysqldump.sh-Datei
Welches wird den Befehl mysql dump enthalten, den wir in einem Cron-Job einplanen werden (ersetzen Sie Benutzer, Passwort und Pfad entsprechend Ihrer Umgebung):
mysqldump -u root -p<mysql_root_password> --all-databases | gzip > /desired/backup/folder/mysqldb_`date +%F`.sql.gz
Bearbeiten: Wenn das Skript die Sicherung an einem Remotestandort speichern soll, stellen Sie einfach das entsprechende Gerät bereit oder geben Sie es frei und verwenden Sie den Bereitstellungspfad im Skript.
Testen Sie das Skript
Stellen Sie sicher, dass das Skript über Ausführungsberechtigungen verfügt:
chmod +x /path/to/mysqldump.sh
Führen Sie das Skript aus:
sh /path/to/mysqldump.sh
Und testen Sie, ob es richtig funktioniert (Die Sicherungsdatei wird im angegebenen Sicherungsordner erstellt).
Erstellen und planen Sie einen neuen Cron-Job
Geben Sie an einer Eingabeaufforderung Folgendes ein
sudo crontab -e
Fügen Sie am Ende der Datei die folgende Zeile hinzu:
30 23 * * * /path/to/mysqldump.sh
Dadurch wird das Skript jeden Tag um 23:30 Uhr ausgeführt.
Erweitern Sie dieses einfache Skript
Es gibt buchstäblich eine Menge Dinge, die Sie tun können, um diese einfache Sicherungsmethode zu verbessern:
- Sichern auf ein anderes System
- Überwachen Sie den Speicherplatz
- E-Mail-Berichterstattung
- ...
Beenden Sie also nicht hier und experimentieren Sie! :-)
Verwenden Sie Backup-Tools oder Cloud-basierte Backup-Services
Obwohl die oben beschriebene Methode eine der einfachsten ist und auf Ihre speziellen Anforderungen erweitert werden kann, sollten Sie erwähnen, dass es auch andere Alternativen gibt:
- Backup-Tools wie AutoMySQLBackup, eine Open-Source-Anwendung, mit der Sie E-Mail-Benachrichtigungen, Komprimierung, Verschlüsselung, Rotation und Art (z. B. inkrementelle) Ihrer Backups einfacher konfigurieren können. Ab Mai 2018 ist es für Ubuntu Server über APT verfügbar.
- Cloud-basierte Backup-Dienste wie BackupBird, myRepono, Bitcan usw., die interessant sein können, wenn Sie mehrere Datenbankserver verwalten und alle ihre Backups zentral verwalten möchten.
Beachten Sie bitte, dass ich in keiner Weise mit den oben genannten Lösungen und Diensten in Verbindung stehe und sie nur als Referenz aufführe. Verwenden Sie sie daher auf eigenes Risiko.
Nützliche Links / Referenzen:
Cron -> https://en.wikipedia.org/wiki/Cron
MySQL Dump -> https://dev.mysql.com/doc/refman/5.7/de/mysqldump.html
date +%F
- Damit wird automatisch eine Kombination aus Jahr + Monat + Datum ausgewählt, die dem Gebietsschema des Benutzers entspricht (z. B. wird angezeigtYYYY-MM-DD
).sudo crontab -e
chmod +x /path/to/mysqldump.sh