2016-05-17 15 views
-1

Ich muss ein Bash (oder Python) -Skript erstellen, das mir den Verfügbarkeitsstatus mehrerer Datenbanken gibt, die sich auf verschiedenen Servern befinden. Ich habe festgestellt, dass ich den Status mit dieser URL "http://marklogic:8002/manage/v2/database/ $ DBNAME /? View = status" abrufen kann. Aber ich habe für etwa zwanzig verschiedene DBs. Wenn Sie diesen Link öffnen, wird ein XML mit Datenbankdetails generiert. Können Sie mir bitte mitteilen, wie ich alle Links loopen kann und nur die Statuszeile grep? Oder wenn Sie eine andere Idee haben, beraten Sie bitteMarklogic DB-Status von mehreren Servern extrahieren?

Antwort

0

Sie können die DB-Namen in einer Datei und dann für for-Schleife um es.

for a in `cat dbname.txt` 
do 
status = `wget -qO- "http://marklogic:8002/manage/v2/database/${a}/?view=status"` 
echo $a, $status 
done 
+0

Dank für die schnelle Antwort danken, aber wenn ich versuche, es in einem zu öffnen? Browser Es fragt mich jedes Mal nach einem Passwort Wie kann ich den Benutzer und das Passwort – mortos

+0

hinzufügen gibt es mehrere Optionen hier, wenn Passwort als Parameter übergeben werden kann, sollten Sie es in URL übergeben.Wenn es nicht erlaubt, sollten Sie versuchen, es mit zu buchen wget –

+0

Setze das Passwort als Umgebungsvariable (nicht interaktiv) oder frage es beim Starten des Skripts einmal (interaktiv) Ich kenne wget nicht, aber mit cURL würdest du '' user' und '- verwenden "Digest" -Optionen, um Digest-Auth anzugeben. Die oben erwähnte Community-Python-API verarbeitet all dies für Sie. –