Ich benutze die neueste Linux Mint. Ich habe mich gefragt, ob es möglich ist, einen speziellen Cronjob für eine Datenbanksicherung zu erstellen.
In meiner /etc/cronjob
Datei habe ich den folgenden Code:
# Minute Hour Day of Month Month Day of Week Command
# (0-59) (0-23) (1-31) (1-12 or Jan-Dec) (0-6 or Sun-Sat)
30 4 * * 1-6 /home/users/backup.sh
In meinem habe /home/users/backup.sh
ich:
mysqldump -uroot -p MyDatabase > /home/users/backup_MyDB/full_myDB.sql
Anstelle von full_myDB.sql
möchte ich so etwas wie haben, 2014-04-04_full_myDB.sql
wo das Datum abhängig von dem Datum, das wir haben, dynamisch hinzugefügt wird.
Wenn die SQL-Sicherungsdatei älter als eine Woche ist, möchte ich, dass der Cronjob sie automatisch löscht .
Ich habe die obigen Informationen verwendet und wollte ein weiteres kleines Update bereitstellen, das tatsächlich eine der wirklich großen Tabellen abschneidet, die unsere Sicherungen verlangsamt haben.
Hoffentlich hilft das jemand anderem.
Unter Verwendung der obigen Informationen habe ich ein einfaches Shell-Skript namens mysqlbackup.sh mit folgendem Inhalt erstellt:
Stellen Sie sicher, dass Sie Folgendes ausführen: chmod + x mysqlbackup.sh
Ich habe dies auch in mein crontab -e eingefügt:
quelle
Ich weiß, es ist ein großer alter, aber ich habe die obigen Antworten verwendet und eine Anweisung zur Dateikomprimierung hinzugefügt. Hoffentlich findet das jemand anderes nützlich.
1) Ein bisschen recherchiert, scheint 7-zip der beste Kompressor da draußen zu sein. Wenn Ihre Linux-Distribution dies unterstützt, können Sie das apt-Installationsprogramm verwenden:
Alternativ können Sie tar.gz verwenden, wenn Sie sich damit wohler fühlen.
2) Dann erstellen Sie ein Skript, zum Beispiel
/home/users/backup.sh
mit dem Inhalt:Dieses Skript findet die Dateien mit mehr als 7 Tagen und löscht sie. Anschließend wird ein SQL-Dump erstellt. Anschließend werden alle .sql-Dateien im Verzeichnis 7-gepackt. Anschließend werden alle .sql-Dateien im Verzeichnis gelöscht. Übrigens können Sie optional einen mysql-Befehl vor dem Speicherauszug hinzufügen (wie in der vorherigen Antwort angegeben, falls erforderlich).
3) Wir machen ein,
chmod +x /home/users/backup.sh
damit es ausführbar sein kann.3.1) Sie sollten Ihr Skript testen, wenn es wie vorgesehen funktioniert
4) Wir programmieren die Aufgabe mit
crontab -e
Und das ist es. Es sichert Ihre MySQL-Datenbank jeden Tag in der Woche um 4:30 Uhr (außer sonntags) und komprimiert die Sicherung
quelle
Um die Antwort von @ Graeme zu ergänzen, ist es möglicherweise erwähnenswert, dass Sie manchmal das Zeichen '%' in einem Cron-Job maskieren müssen, damit es so aussieht:
quelle