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 Sep 23, 2015 um 14: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-Key: 283190

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

Printed on: April 18, 2024 at 21:04 o'clock

Member: kaiand1
kaiand1 Sep 17, 2015 at 22:00:04 (UTC)
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
Member: dafdag
dafdag Sep 17, 2015 at 23:16:49 (UTC)
Goto Top
Sorry, wo finde ich die Log Datei? Bin Linux Anfänger
Member: kaiand1
kaiand1 Sep 17, 2015 at 23:59:16 (UTC)
Goto Top
Solange es ein Lokaler Server ist geht es ja noch.
Da hat jeder mal klein mit Angefangen...
in /var/log
Member: dafdag
dafdag Sep 18, 2015 at 08:05:41 (UTC)
Goto Top
Dort ist keine Logdatei verzeichnet die mit cron bezeichnet wird. DIe mysql Log sieht auch gut aus
Member: dafdag
dafdag Sep 18, 2015 at 08:11:32 (UTC)
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)
Member: michi1983
Solution michi1983 Sep 18, 2015 updated at 10:29:17 (UTC)
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.
Member: dafdag
dafdag Sep 18, 2015 at 10:25:48 (UTC)
Goto Top
Dankeschön hat geklappt!
Member: dafdag
dafdag Sep 18, 2015 at 19:46:07 (UTC)
Goto Top
Ich war leider zu voreilig. Es hat leider doch nicht funktioniert.
Nur wenn ich das Script manuell aufrufe geht es.
Member: michi1983
michi1983 Sep 18, 2015 at 21:53:31 (UTC)
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ß
Member: dafdag
dafdag Sep 20, 2015 at 19:52:41 (UTC)
Goto Top
Sorry - Ubuntu 14.04 LTS 64bit
Member: michi1983
michi1983 Sep 21, 2015 updated at 08:46:31 (UTC)
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ß
Member: dafdag
dafdag Sep 22, 2015 at 19:47:38 (UTC)
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.
Member: dafdag
dafdag Sep 22, 2015 at 19:49:18 (UTC)
Goto Top
Ps, wenn ich das Scrip mit

sh starte wird das backup ausgeführt.
Member: dafdag
dafdag Sep 23, 2015 at 12:37:31 (UTC)
Goto Top
Es scheint jetzt zu laufen komischerweise.

Gibt es noch ne Möglichkeit, dass anachron die Dateien älter als X Tage löscht?
Member: michi1983
Solution michi1983 Sep 23, 2015, updated at Sep 24, 2015 at 07:45:12 (UTC)
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ß
Member: dafdag
dafdag Sep 24, 2015 at 07:45:17 (UTC)
Goto Top
VIelen Dank