PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : mysqldump ohne DB leerer dump



leGeneral
13.02.08, 20:55
Ich habe versucht ein Script zu schreiben das per cronjob eine MySQL Datenbank sichert und im Netwerk speichert. Das funktioniert auch alles soweit ganz gut.
Nur in dem Fall in dem MySQL nicht gestartet ist klappt es nicht so wie ich es will. Es wird völlig ignoriert und einfach ein leeres File gespeichert.


#!/bin/bash
datum=`date +%Y-%m-%d-%H_%M`
echo 'Sicherung '$datum
mount > mountlist
grep //192.168.2.2/BackupDB mountlist
if test "$?" != 0
then
echo 'Laufwerk nicht gefunden, versuche zu mounten...'
mount -a
mount > mountlist
grep //192.168.2.2/BackupDB mountlist
if test "$?" != 0
then
echo 'LW konnte nicht eingebunden werden'
exit
fi
fi
cd /opt/lampp/bin
./mysqldump -uxxx -pxxx Praktikum > /mnt/BackupDB/praktikumDB_$datum.sql
find /mnt/BackupDB/praktikumDB_$datum.sql
if test "$?" = 0
then
echo 'Sicherung erfolgreich erstellt'
find /mnt/BackupDB -mmin +8 -name praktikumDB_* -exec rm {} \;
else
echo 'Es wurde keine Sicherung angelegt'
fi

Wie könnte ich denn am besten prüfen ob die Datenbank überhaupt gestartet ist bevor ich mysqldump ausführe? Ich möchte eine Meldung ausgeben da ich die Ausgaben mit "tee" in einem quasi Log festhalte.
Ich hoffe mal ihr könnte mir weiterhelfen.

marce
13.02.08, 21:00
evtl. gibt es ein Startscript für MySQL, welches über -status die Info liefert?

MiGo
13.02.08, 21:04
Z.B. mit "pidof" - das gibt die PID zurück, wenn mysql läuft.

[ je@erebos] je (173G free) % echo `pidof mysqld`

[ je@erebos] je (173G free) % sudo /etc/init.d/mysqld start
Password or swipe finger:
Starting MySQL: [ OK ]
[ je@erebos] je (173G free) % echo `pidof mysqld`
5276

Oder aber halt über das pid-File von mysql

if [ -f /var/run/mysqld/mysqld.pid ]
then
echo Läuft!
fi

leGeneral
15.02.08, 09:16
Ich hab es jetzt mit pidof gelöst. Danke für den Tip!
Die mysqld.pid lag nicht in /var/run. Evtl. liegt das an der Installation durch Xampp.