Weil ich kürzlich Backups für eine NextCloud eingerichtet habe Zum Beispiel dachte ich, es wäre eine gute Idee, ein extra Tutorial darüber zu schreiben, wie man einen MySQLdump ohne Passwort in Cronjob erstellt. Das Problem mit MySQL-Dumps ist, wenn Sie den Befehl ausführen, ohne eine Passwortdatei anzugeben, werden Sie immer aufgefordert, Ihr Passwort einzugeben. Dies wäre schwierig, wenn Sie diesen Befehl in einem Cronjob ausführen möchten .
Der Prozess ist ziemlich schnell und einfach, daher werde ich Sie durch jeden Schritt führen.
Schritt 1 - Erstellen / Bearbeiten der my.cnf-Datei
In einigen Fällen ist diese Datei bereits vorhanden, wenn nicht, erstellen Sie sie einfach.
sudo nano ~/.my.cnf
Und jetzt fügen Sie einfach die folgenden Zeilen ein und passen sie natürlich so an, dass sie Ihren Benutzernamen und Ihr Passwort enthalten.
[mysqldump] user = mysqluser password = yourpassword
Falls die Datei bereits existiert und Daten enthält, fügen Sie einfach diese 3 Zeilen direkt darunter ein.
Schritt 2 - Berechtigungen anpassen
Jetzt müssen wir die Berechtigungen anpassen.
chmod 600 ~/.my.cnf
Schritt 3 - Erstellen des Cronjobs
Jetzt erstellen wir den Cronjob. Wenn Sie die Grundlagen der Funktionsweise von Cronjobs lernen möchten, sehen Sie sich mein umfassendes Tutorial an drauf.
Um die Crontab-Datei zu bearbeiten, führen Sie Folgendes aus:
crontab -e
Und um den MySQL-Dump jeden Tag um 21:00 Uhr auszuführen, fügen Sie unten die folgende Zeile hinzu. Um zu erfahren, wie Zeiten funktionieren, sieh dir mein anderes Tutorial an.
0 21 * * * mysqldump -u mysqluser -h localhost – all-databases | gzip -9 > mysqldbbackup.sql.gz > /dev/null
Schritt 4 (optional) – Manuelles Ausführen des MySQL-Dumps
Wenn Sie den MySQL-Dump direkt ausführen möchten, führen Sie einfach Folgendes aus:
mysqldump – single-transaction -h localhost -u mysqluser > /usr/share/mysqlbackups/mysqldbbackup.sql
Und da haben Sie es. So führen Sie MySQLdump ohne Passwort im Cronjob aus.