mysql datenbanken per shell script sichern
Jan-Benedict Glaw
jbglaw at lug-owl.de
Sun Mar 25 22:56:36 CEST 2007
On Sun, 2007-03-25 20:05:54 +0200, hauke homburg <h.homburg at w3-creative.de> wrote:
> Datei. Diese lese ich dann in ein Array ein. Leider klappt der Zugriff aus
> einer For Schleife auf da sarray nicht ganz.
>
> Die Schleife sieht folgendermassen aus:
>
> for Database in "$db";
Zwei Fehler in einer Zeile :) Erstmal ist das kein Array. $db ist nur
eine Variable, die einzelne Worte als eine zusammenhängende
Zeichenfolge, zufälligerweise mit Zeichen aus $IFS untereinander
getrennt, enthält.
Und da zu noch Anführungsstriche drumherum machst, wird $Database nur
einmal befüllt.
> do mysqldump -u user -ppassword $db > $db_backup.sql;
Und hier solltest Du (Stichwort: longest match) dafür in jedem Fall
Anführungsstriche setzen.
> done;
Außerdem hast Du noch überflüssig viele Semikolons in dem Text. In
"kurz" kann man sagen, daß ein Zeilenumbruch ein Semikolon ersetzt.
> Das Array enthällt dabei die Liste der Datenbanken.
> wenn ich die Schleife auskommentiere und einfach ein echo "$db" mache dann
> kommt Liste auch wieder als Liste angezeigt.
So könnte das also aussehen:
for Database in $db; do
mysqldump -u user -ppassword "$Database" > "${Database}_backup.sql"
done
"$Database" wird elementweise befüllt (wobei "elementweise" bedeutet,
daß in $db die einzelnen Wörter gemäß $IFS auseinandergeschnitten
werden.) "$db" enthält die mit Zeichen aus $IFS getrennten DB-Namen.
Das versagt natürlich, wenn Du mal TABs, Leerzeichen oder
Zeilenumbrüche in den DB-Namen haben solltest...
MfG, JBG
--
Jan-Benedict Glaw jbglaw at lug-owl.de +49-172-7608481
Signature of: http://perl.plover.com/Questions.html
the second :
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lug-owl.de/pipermail/linux/attachments/20070325/5fc774fa/attachment.sig>
More information about the Linux
mailing list