Shell-Script - Datenbank-Connect

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Wormi
Beiträge: 123
Registriert: 08.08.2004 09:21:03
Kontaktdaten:

Shell-Script - Datenbank-Connect

Beitrag von Wormi » 26.06.2012 08:24:34

Hallo zusammen,

ich habe ein Script welches auf eine externe Datenbank zugreift. Manchmal ist die Datenbank jedoch für ein paar Sekunden nicht erreichbar oder vom Server aus kann nicht raus connected werden. Ich erhalte dann die Fehlermeldung "Unknown Server Host" oder "Can´t connect to Mysql Server on....".
Gits es eine simple Möglichkeit, das er so lange versucht die Datenbank zu connecten bis er es geschafft hat, und keine Fehlermeldung auswirft?

Gruß Wormi

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Shell-Script - Datenbank-Connect

Beitrag von Cae » 26.06.2012 08:39:11

Code: Alles auswählen

until connect; do sleep 1; done
– unter der Annahme, dass connect die verbindende Anwendung ist und einen vernünftigen Rückgabewert hat. Falls nicht, kann man mit test -n oder etwas in der Richtung arbeiten.

Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

Wormi
Beiträge: 123
Registriert: 08.08.2004 09:21:03
Kontaktdaten:

Re: Shell-Script - Datenbank-Connect

Beitrag von Wormi » 27.06.2012 15:09:26

Mein Script lautet in Auszügen wie folgt:

Code: Alles auswählen

mysql_connect="mysql -h db.xxxxxx.de -u xxxxxxx_db_user1 --password=xxxxxxxxxxxxx --database xxxxxxxx_db1"

db_status=`echo "SELECT * FROM erreichbar" | $mysql_connect`
db_status=`echo $db_status | awk '{print $2}'`
if [ $db_status != ja ]
then echo fehler
exit
fi
Wenn das Script nicht verbinden kann, dann erhalte ich eine Fehlermeldung, jedoch nicht ein "echo Fehler".

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Shell-Script - Datenbank-Connect

Beitrag von Cae » 27.06.2012 15:18:42

Code: Alles auswählen

mysql_connect="mysql -h db.xxxxxx.de -u xxxxxxx_db_user1 --password=xxxxxxxxxxxxx --database xxxxxxxx_db1"

until db_status="$(echo 'SELECT * FROM erreichbar' | $mysql_connect)"; do
	# retry, hier evtl. db_status verwursten (unnoetig)
	sleep 5;
done
Was spricht dagegen?

Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

Antworten