MySQL-Backup verfeinern

Backup, Restore und Transfer von Daten
Post Reply
tobias1985
Posts: 68
Joined: 2004-04-15 11:01
 

MySQL-Backup verfeinern

Post by tobias1985 »

Hi,
ich denke dies gehört nicht mehr in den anderen Theread sondern als neuer Thread. Folgendes Script funktioniert:
42 16 * * * mysqldump -u Username -pPasswort -B db_1 db_2 db_3 db_4 | gzip -c9 |uuencode backup.sql.gz| mail -s 'DB backup from user' mail@adresse.de

Ich hätt das aber gern anders. Also zurzeit wird eine Textdatei erstellt und die gzippt. In dieser Textdatei sind alle Datenbanken drin.
Wie geht das jetzt, dass für jede Datenbank 1 Textdatei erstellt wird und dann alle zusammen in das gzip-File kommen?

Wäre super wenn jemand helfen könnte.
captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten
Contact:
 

Re: MySQL-Backup verfeinern

Post by captaincrunch »

Code: Select all

#!/bin/sh
cd /var/backup
for i in DB1 DB2 DB3 USW
do
  `which mysqldump`  -u Username -pPasswort -B $i > $i.bak
done

/bin/tar cvzf ./backup.sqp.gz *.bak

`which uuencode` ./backup.sql.gz | /bin/mail -s 'DB Backup from user' FOO@BAR.example
Einfach mal runtergetippert, sollte gehen.
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
tobias1985
Posts: 68
Joined: 2004-04-15 11:01
 

Re: MySQL-Backup verfeinern

Post by tobias1985 »

Dazu muss ich das dann aber ganz anders machen oder?
Also dein Quelltext muss ja in eine Extra-Datei. (welche Dateiendung?)
Und dann diese Datei per Cron aufgerufen werden?

Versteh ich das so richtig? Wenn ja, dann bräuchte ich nur noch die Dateiendung und dann teste ich das mal. Ergebnisse und Codes poste ich dann hier für alle anderen. Denke dass alles in allem das sehr sinnvoll und brauchbar ist.
captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten
Contact:
 

Re: MySQL-Backup verfeinern

Post by captaincrunch »

Also dein Quelltext muss ja in eine Extra-Datei.
Ja, die Endung ist piepegal, das File muss nur das x-Bit haben.
Und dann diese Datei per Cron aufgerufen werden?
Ja, aber probier's erstmal per Hand.
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
svenk
Posts: 36
Joined: 2003-03-12 09:19
 

Re: MySQL-Backup verfeinern

Post by svenk »

keine dateiendung oder .sh :)

Ist nen Shellscript. Das ist es Realativ egal welche endung du machst.
tobias1985
Posts: 68
Joined: 2004-04-15 11:01
 

Re: MySQL-Backup verfeinern

Post by tobias1985 »

x-Bit ? Sorry wenn ich etwas blöd Frage, aber solange mach ich noch nicht mit Linux rum. Bin erst dabei etwas tiefer einzusteigen, da für mich das auch berufliche Vorteile mal haben wird.
Also was bedeutet x-Bit?
tobias1985
Posts: 68
Joined: 2004-04-15 11:01
 

Re: MySQL-Backup verfeinern

Post by tobias1985 »

So. Habs getestet.
Ordner /var/backup habe ich erstellt.
Das Script habe ich nun in /etc reinkopiert und ausgeführt.
Folgende Ausgabe bekomm ich:
p1234567:/etc # ./db_backup.sh
usr_web3_1.bak
usr_web3_2.bak
usr_web3_3.bak
usr_web3_4.bak
Und dann passiert garnichts mehr. So lange kann das ja nicht dauern oder? Hab eine Minute oder so gewartet aber er bleibt stehen und es passiert garnicht. Habs dann mit STRG+C abgebrochen, woraufhin ich dann eine leere Mail bekomme.
tobias1985
Posts: 68
Joined: 2004-04-15 11:01
 

Re: MySQL-Backup verfeinern

Post by tobias1985 »

So. Liegt definitiv an dieser Zeile:

Code: Select all

`which uuencode` backup.sql.gz | mail -s 'DB Backup from web3' mail@adresse.de
Und ja uuencode ist installiert. Den Befehl nutze ich ja bereits in meinem alten Script das funktioniert.
captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten
Contact:
 

Re: MySQL-Backup verfeinern

Post by captaincrunch »

Dann gib einfach den vollen Pfad zu uuencode statt der ` und des which an.
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
tobias1985
Posts: 68
Joined: 2004-04-15 11:01
 

Re: MySQL-Backup verfeinern

Post by tobias1985 »

CaptainCrunch wrote:Dann gib einfach den vollen Pfad zu uuencode statt der ` und des which an.
Nö, geht nicht. Hier mal der aktuelle Code:

Code: Select all

#!/bin/sh
cd /var/backup
for i in usr_web3_1 usr_web3_2 usr_web3_3 usr_web3_4
do
  `which mysqldump`  -u Username -pPasswort -B $i > $i.sql
done

tar cvzf ./backup.sql.gz *.sql

/usr/bin/uuencode backup.sql.gz| mail -s 'DB backup from web3' mail@adresse.de
captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten
Contact:
 

Re: MySQL-Backup verfeinern

Post by captaincrunch »

Ã?ndere mal die erste Zeile in

Code: Select all

#!/bin/sh -x
und poste das Ergebnis des Aufrufs (Passwort bitte vorher unkenntlich machen).
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
tobias1985
Posts: 68
Joined: 2004-04-15 11:01
 

Re: MySQL-Backup verfeinern

Post by tobias1985 »

CaptainCrunch wrote:Ã?ndere mal die erste Zeile in

Code: Select all

#!/bin/sh -x
und poste das Ergebnis des Aufrufs (Passwort bitte vorher unkenntlich machen).
Dann kommt folgendes und er bleibt wieder nach der letzten Zeile stehen und es passiert garnichts mehr. Muss dann mit Strg+C abbrechen.

Code: Select all

+ cd /var/backup
++ which mysqldump
+ /usr/bin/mysqldump -u Username -pPasswort -B usr_web3_1
++ which mysqldump
+ /usr/bin/mysqldump -u Username -pPasswort -B usr_web3_2
++ which mysqldump
+ /usr/bin/mysqldump -u Username -pPasswort -B usr_web3_3
++ which mysqldump
+ /usr/bin/mysqldump -u Username -pPasswort -B usr_web3_4
+ tar cvzf ./backup.sql.gz usr_web3_1.sql usr_web3_2.sql usr_web3_3.sql usr_web3_4.sql
usr_web3_1.sql
usr_web3_2.sql
usr_web3_3.sql
usr_web3_4.sql
+ /usr/bin/uuencode backup.sql.gz
+ mail -s 'DB backup from web3' mail@adresse.de
captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten
Contact:
 

Re: MySQL-Backup verfeinern

Post by captaincrunch »

Dann probier's mal so:

Code: Select all

#!/bin/sh
cd /var/backup
for i in DB1 DB2 DB3 USW
do
  `which mysqldump`  -u Username -pPasswort -B $i > $i.bak
done

/bin/tar cvzf ./backup.sql.gz *.bak

`which mutt` -a ./backup.sql.gz -s DB-Backup bla@blub.example
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
tobias1985
Posts: 68
Joined: 2004-04-15 11:01
 

Re: MySQL-Backup verfeinern

Post by tobias1985 »

Dann kommt:
which mutt: command not found

Wenn ich nur mutt (ohne which) eingebe und ausführe, dann muss ich erst nochmal "to:" bestätigen, dann "Subject:" bestätigen, dann komm ich in irgendein leeres File. Aus diesem gehe ich dann mit :q raus. Und die Mail wurde nicht verschickt.

Davon abgesehen dass keine Mail rausgeht, ist es auch doof dass ich erst alles bestätigen müsste, da ich das ganze ja dann per Cron laufen lassen will.
flo
Posts: 2223
Joined: 2002-07-28 13:02
Location: Berlin
 

Re: MySQL-Backup verfeinern

Post by flo »

Schau Dir doch einmal metamail an - das läuft bei mir ganz gut.

flo.
tobias1985
Posts: 68
Joined: 2004-04-15 11:01
 

Re: MySQL-Backup verfeinern

Post by tobias1985 »

Habs hinbekommen mit einem Extra-Script. Poste ich alles wenn alles zu 100% funktioniert.

Nun gibts immer noch ein Problem. In den *.sql-Dateien sind statt Absätze solche Rechtecke drin. Also so wie wenn ich was vom FTP öffnen will und binär gewählt ist. Dann sind ja auch anstelle der Absätze so Rechtecke.
Also wenn dafür noch jemand eine Lösung weiß wäre es super. Oder ist das egal, wenn ich eine solche Datei mit PHPmyadmin reinladen will?

So. Ich werd jetzt noch einen Cron einrichten und wenn das Backup heute Nacht funktioniert werde ich eine genaue Anleitung schreiben und hier ins Forum stellen.
tobias1985
Posts: 68
Joined: 2004-04-15 11:01
 

Re: MySQL-Backup verfeinern

Post by tobias1985 »

Ok. Doch noch 1 Problem. Wenn der Cron ausgeführt wird, wird die Mail verschickt.
Allerdings bekommt "root" eine Mail mit folgendem Inhalt:
usr_web3_1.sql
usr_web3_2.sql
usr_web3_3.sql
usr_web3_4.sql
Kann man das irgendwie verhindern?
captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten
Contact:
 

Re: MySQL-Backup verfeinern

Post by captaincrunch »

Ja:

Code: Select all

/bin/tar cvzf ./backup.sql.gz *.bak >/dev/null 2>&1
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
amcd
Posts: 5
Joined: 2004-04-20 11:31
 

Re: MySQL-Backup verfeinern

Post by amcd »

Code: Select all

 `which mysqldump`  -u Username -pPasswort -B $i > $i.bak
müsste das hier nicht -p Passwort heissen anstatt -pPasswort?
captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten
Contact:
 

Re: MySQL-Backup verfeinern

Post by captaincrunch »

Wenn's dir lieber ist, schreib halt "--password=BLA"
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
Post Reply