Platzhalter in shellscript

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
boa
Beiträge: 77
Registriert: 27.07.2004 15:51:08

Platzhalter in shellscript

Beitrag von boa » 13.12.2005 20:26:02

Ivh möchte eine Datenbank per shellscript sichern
Die Tabellen sollen einzeln gesichert werden.
vielleicht gibt es ja auch die Möglichkeit es wie in einer Schleife bei php zu machen

Code: Alles auswählen

mysqldump -hlocalhost -udeinUser -pdeinPasswort deineDB hkl_% > db.sql
so etwas in der Richtung
Es sollen also mit dem Dump alle Tabellen gesichert werdn, die mit hkl_ beginnen.
Geht das überhaupt?

Benutzeravatar
peschmae
Beiträge: 4844
Registriert: 07.01.2003 12:50:33
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: nirgendwo im irgendwo

Beitrag von peschmae » 13.12.2005 21:07:42

Ich benutz kein Mysql. Also die Gegenfrage (:D): Gibts ne Möglichkeit z.B. ne Liste aller Tabellen zu kriegen in der DB?

Dann könnte man mit Grep die nötigen rausfiltern und dann via for-Schleife drüberlaufen.

MfG Peschmä
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 13.12.2005 21:13:45

Das könnte über PHPMyAdmin gehen; nützt dir aber wahrscheinlich wohl nichts, oder?

Benutzeravatar
feltel
Webmaster
Beiträge: 10471
Registriert: 20.12.2001 13:08:23
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Leipzig, Germany
Kontaktdaten:

Beitrag von feltel » 13.12.2005 21:15:05

Probier mal das hier. Ist jetzt aber aus dem Kopf zusammengetippert und muss nicht unbedingt funktionieren.

Code: Alles auswählen

#!/bin/sh

for i in `echo \"show tables;\" | mysql -uUSER -pPWD DATENBANK | grep hkl_`;
do
 mysqldump -hlocalhost -uUSER -pPWD DATENBANK --tables $i >> db.sql
done;

boa
Beiträge: 77
Registriert: 27.07.2004 15:51:08

Beitrag von boa » 13.12.2005 21:43:53

Fust auch nicht.
So sähe das in php aus

Code: Alles auswählen

$sql = "SHOW TABLES LIKE 'hkl_%_tabs'";
$res = mysql_query($sql);

tapferesschneiderlein
Beiträge: 189
Registriert: 11.08.2005 09:27:01

Beitrag von tapferesschneiderlein » 13.12.2005 22:09:51

Versuch mal

Code: Alles auswählen

mysql database -uuser -ppasswd --batch -e "show tables like 'hkl%'" | \
    egrep "^hkl" | \
    while read i; do \
        mysqldump database -uuser -ppasswd --tables $i; 
    done

Antworten