"flush tables with read lock" per Bash-Shell von einem anderen Host

Bash, Shell, PHP, Python, Perl, CGI
sierra
Posts: 69
Joined: 2003-08-07 06:07

"flush tables with read lock" per Bash-Shell von einem anderen Host

Post by sierra »

Hallo,

ich möchte gerne den oben genannten MySQL-Befehl von einer anderen Host per SSH-Command senden. Folgende Code-Zeilen habe ich mir überlegt:

ssh $domu_ip "mysql -u$mysql_user -p$mysql_pw -e "FLUSH TABLES WITH READ LOCK""

domu_ip="IP-Adresse des Zielhosts"
mysql_user="root"
mysql_pw="mysqlrootpw"

Leider habe ich folgendes gelesen:
http://209.85.135.104/search?q=cache:Co ... =firefox-a
Dieses Lock ist global über alle Datenbanken.

mysql> flush tables with read lock;


Es ist wichtig diese Session offen zu halten, da beim Beenden der Session das Lock sofort entfernt wird. Deshalb schieben wir den Prozess einfach in den Hintergrund.

[Press ctrl-z]
Dann scheint wohl meine Version nicht zu funktionieren, da ja nur ein MySQL Befehl abgesendet wird und die Session so nicht offen bleibt.

Hat jemand eine andere Idee? Wie kann ich testen, ob der Lock derzeit noch aktiv ist bzw. funktioniert?


Gruss,

Sierra
EdRoxter
Posts: 483
Joined: 2006-01-06 03:23
Location: Neben Bonn

Re: "flush tables with read lock" per Bash-Shell von einem anderen Host

Post by EdRoxter »

Probier's mit screen.

Da ich selbst damit nicht arbeite, kann ich dir leider aus dem Kopf nicht sagen, was genau du tun musst, aber du könntest den mysql-Prozess in einer screen-Session starten und detachen. Das Schöne an screen ist nämlich, dass die screen-Session erhalten bleibt, wenn du die SSH-Session beendest.
Wird zwar etwas Fummelei da später per Script wieder dran zu kommen, aber auch das geht - da ich selbst nicht mit screen arbeite, kann ich dir nur leider nicht sagen, wie. Aber eine Google-Suche und die manpages helfen dir sicher schonmal ein gutes Stück weiter.
User avatar
Joe User
Project Manager
Project Manager
Posts: 11171
Joined: 2003-02-27 01:00
Location: Hamburg

Re: "flush tables with read lock" per Bash-Shell von einem anderen Host

Post by Joe User »

Als Alternative zu Screen kannst Du den MySQL-Befehl auch in ein Script (chmod 0700) packen und dieses auf dem Zielhost per nohup starten. Hat den Vorteil, dass das Passwort nicht im Klartext in ps und Co auftaucht und benötigt keine extra Software wie Screen.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
oxygen
Posts: 2138
Joined: 2002-12-15 00:10
Location: Bergheim

Re: "flush tables with read lock" per Bash-Shell von einem anderen Host

Post by oxygen »

In 95% Fälle reicht es auch wie in dem Artikel beschrieben, den Schritt mit dem Global Lock zu überspringen.
sierra
Posts: 69
Joined: 2003-08-07 06:07

Re: "flush tables with read lock" per Bash-Shell von einem anderen Host

Post by sierra »

Hallo,

vielen Dank für die Antworten. Ich glaube das mit nohup ist das was ich suche.

Jeztt noch eine letzte Frage: Wie kann ich testen, ob der Read Lock noch an ist? Bringt MySQL dann einen Fehler, wenn eine Datenbank z.B. über den Apachen aufrufen wird? Welchen Fehler sollte er dann bringen?