dafdag
Goto Top

Cronjob mySQL Datensicherung

Hallo zusammen,

ich habe ein Ubuntu Server mit mehreren mySQL Datenbanken die ich gerne via Cronjob stündlich sichern möchte.

Leider startet der Cronjob nicht. Hat jemand vielleicht eine Idee.


Folgendes habe ich gemacht:

1. Unter etc/cron.hourly die Datei crontab angelegt. Rechte: rw-r--r--
2. Die crontab Datei besteht aus folgenden Code.

  1. m h dom mon dow command
0 * * * * mysqldump -uUser1 -p123456.a db1 > ../private-backup/mySQLBackup/DB1-`date +%Y-%m-%d-%H-%M`.sql
5 * * * * mysqldump -uUser1 -p123456.a db2 > ../private-backup/mySQLBackup/DB2-`date +%Y-%m-%d-%H-%M`.sql
#----------------------------------------------------------------------------

3. reboot Server
Kommentar vom Moderator Biber am 23.09.2015 um 16:37:47 Uhr
Zitat von @michi1983:

Versuch bitte mal das Script umzubennen,
Am Umbennen scheitern wir doch schon seit einem Jahrzehnt hier im Forum...

set rgc+=1
#?? (auf jeden Fall ist rgc größer als der Kurswert der VW-Aktie)

Content-ID: 283190

Url: https://administrator.de/contentid/283190

Ausgedruckt am: 15.11.2024 um 17:11 Uhr

kaiand1
kaiand1 18.09.2015 um 00:00:04 Uhr
Goto Top
Was steht im Logfile dazu?
crontab -e ginge auch
Du hast aber den Cron Eingestellt das dieser jede Stunde bei 0 Minuten läuft under der andere jede Stunde um 5 nach
dafdag
dafdag 18.09.2015 um 01:16:49 Uhr
Goto Top
Sorry, wo finde ich die Log Datei? Bin Linux Anfänger
kaiand1
kaiand1 18.09.2015 um 01:59:16 Uhr
Goto Top
Solange es ein Lokaler Server ist geht es ja noch.
Da hat jeder mal klein mit Angefangen...
in /var/log
dafdag
dafdag 18.09.2015 um 10:05:41 Uhr
Goto Top
Dort ist keine Logdatei verzeichnet die mit cron bezeichnet wird. DIe mysql Log sieht auch gut aus
dafdag
dafdag 18.09.2015 um 10:11:32 Uhr
Goto Top
Sep 18 06:25:01 S24 CRON[24919]: (root) CMD (cd / && run-parts --report /etc/cron.hourly)
Sep 18 07:25:01 S24 CRON[25062]: (root) CMD (cd / && run-parts --report /etc/cron.hourly)
Sep 18 08:25:01 S24 CRON[25206]: (root) CMD (cd / && run-parts --report /etc/cron.hourly)
Sep 18 09:25:01 S24 CRON[25383]: (root) CMD (cd / && run-parts --report /etc/cron.hourly)
Sep 18 10:03:31 S24 crontab[25541]: (root) BEGIN EDIT (root)
Sep 18 10:03:54 S24 crontab[25552]: (root) BEGIN EDIT (root)
michi1983
Lösung michi1983 18.09.2015 aktualisiert um 12:29:17 Uhr
Goto Top
Zitat von @dafdag:

Hallo zusammen,

ich habe ein Ubuntu Server mit mehreren mySQL Datenbanken die ich gerne via Cronjob stündlich sichern möchte.
Welche Unbuntu Version genau?
lsb_release -a

Leider startet der Cronjob nicht. Hat jemand vielleicht eine Idee.
Wahrscheinlich falsch eingerichtet.

Folgendes habe ich gemacht:

1. Unter etc/cron.hourly die Datei crontab angelegt. Rechte: rw-r--r--
2. Die crontab Datei besteht aus folgenden Code.

  1. m h dom mon dow command
0 * * * * mysqldump -uUser1 -p123456.a db1 > ../private-backup/mySQLBackup/DB1-`date +%Y-%m-%d-%H-%M`.sql
5 * * * * mysqldump -uUser1 -p123456.a db2 > ../private-backup/mySQLBackup/DB2-`date +%Y-%m-%d-%H-%M`.sql
#----------------------------------------------------------------------------

Wenn du cron.hourly nutzen willst (was übrigens erst , musst du ein Script erstellen welches du dann in den Ordner cron.hourly legst.

Erstelle also ein Script mit folgendem Inhalt und benenne es z.B. mysql_backup.sh
#!/bin/bash
mysqldump -uUser1 -p123456.a db1 > ../private-backup/mySQLBackup/DB1-$(date +"%Y%m%d-%H_%M").sql && mysqldump -uUser1 -p123456.a db1 > ../private-backup/mySQLBackup/DB1-$(date +"%Y%m%d-%H_%M").sql  

Mach es auführbar mit
chmod +x mysql_backup.sh
und lege es in den cron.hourly Ordner.
Damit sollte es klappen.

Lies dir bitte auch noch den Punkt Anacron-Konfiguration in diesem Link durch.
dafdag
dafdag 18.09.2015 um 12:25:48 Uhr
Goto Top
Dankeschön hat geklappt!
dafdag
dafdag 18.09.2015 um 21:46:07 Uhr
Goto Top
Ich war leider zu voreilig. Es hat leider doch nicht funktioniert.
Nur wenn ich das Script manuell aufrufe geht es.
michi1983
michi1983 18.09.2015 um 23:53:31 Uhr
Goto Top
Zitat von @dafdag:

Ich war leider zu voreilig. Es hat leider doch nicht funktioniert.
Nur wenn ich das Script manuell aufrufe geht es.

Du hast noch nicht meine Frage bezüglich Ubuntu Version beantwortet. Den anacron Dienst cron.hourly gibt es erst ab Ubuntu 14.04 z.B.

Gruß
dafdag
dafdag 20.09.2015 um 21:52:41 Uhr
Goto Top
Sorry - Ubuntu 14.04 LTS 64bit
michi1983
michi1983 21.09.2015 aktualisiert um 10:46:31 Uhr
Goto Top
Zitat von @dafdag:

Sorry - Ubuntu 14.04 LTS 64bit

Versuch bitte mal das Script umzubennen, ohne .sh am Schluss, dann sollte es klappen.

Hiermit kannst du den Anachron Dienst noch testen:
run-parts --test /etc/cron.hourly

Gruß
dafdag
dafdag 22.09.2015 um 21:47:38 Uhr
Goto Top
Hab das Script umbenannt.

Wenn ich den Anachron Dienst teste wie oben beschrieben erhalte ich nur folgende Zeile zurück:

/etc/cron.hourly/mysql_backup

Mehr nicht. Das Backup wird auch nicht durchgeführt.
dafdag
dafdag 22.09.2015 um 21:49:18 Uhr
Goto Top
Ps, wenn ich das Scrip mit

sh starte wird das backup ausgeführt.
dafdag
dafdag 23.09.2015 um 14:37:31 Uhr
Goto Top
Es scheint jetzt zu laufen komischerweise.

Gibt es noch ne Möglichkeit, dass anachron die Dateien älter als X Tage löscht?
michi1983
Lösung michi1983 23.09.2015, aktualisiert am 24.09.2015 um 09:45:12 Uhr
Goto Top
Zitat von @dafdag:

Es scheint jetzt zu laufen komischerweise.

Gibt es noch ne Möglichkeit, dass anachron die Dateien älter als X Tage löscht?
Anachron selbst nicht, aber du kannst diesen Code:
find /path/to/files* -mtime +5 -exec rm {} \;
in ein Script packen.
+5 steht für älter als 5 Tage.

Gruß
dafdag
dafdag 24.09.2015 um 09:45:17 Uhr
Goto Top
VIelen Dank