7. Oktober 2008

OTN Software per Kommandozeile herunterladen

Letzte Woche habe ich meine Datenbank auf 11.1.0.7 gepatcht. Und beim Download des Patchsets aus Metalink habe ich gemerkt, wie lange das manchmal dauern kann ... Naja ... Wenn man den Download nachmittags startet, wird er vielfach eben nicht bis abends fertig. Arbeitsplatzrechner laufen lassen geht auch nicht immer. Und wenn der Patch dann auf dem PC ist, muss er noch zum Server - das braucht dann auch wieder seine Zeit.
Besser wäre es ja, wenn man die Software direkt auf den (Unix / Linux) Server laden könnte. Über VNC könnte man nun zwar den Browser starten und ganz normal arbeiten ... das kann je nach Netzanbindung aber auch ziemlich träge sein ...
Also habe ich mal probiert, wie man den Download im Hintergrund von der Kommandozeile aus machen könnte. Das Tool dazu ist ja schon da: wget
Und für ein Patchset würde man dann wie folgt vorgehen:
  1. Vom Arbeitsplatzrechner ganz normal mit dem Browser ins Metalink gehen
  2. Patchset raussuchen
  3. Download-URL (in die Zwischenablage) kopieren
... dann auf den Server gehen und folgenden Aufruf eingeben:
$ nohup wget \
  --http-user=[Metalink-Username] \
  --http-password=[Metalink-Passwort] \
  --output-file=[Dateiname] \
  --quiet
  --"[URL aus der Zwischenablage]" > download.log 2>1 &
Nun läuft der Download los - man kann die Shell schließen und am nächsten Morgen weiterarbeiten ...
Wenn es nun an OTN Downloads geht, ist das nicht ganz so einfach; denn beim OTN gibt es ein etwas anderes Login-Verfahren. Wenn man den Download anstößt, muss das OTN Browser Cookie gesetzt sein. Aber es gibt auch hier einen Weg:
  1. Via VNC einmal den Browser aufrufen und ins OTN gehen
  2. Mit dem OTN-Account anmelden und so sicherstellen, dass das OTN Cookie gesetzt ist
  3. Alternativ kann man auch (für Firefox) die Datei Cookies.txt auf den Server hochladen.
... nun können wir wieder wget aufrufen:
$ nohup wget \
  --load-cookies=[Pfad zur Cookies.txt-Datei] \
  --output-file=[Dateiname] \
  --quiet
  --"[Download-URL]" > download.log 2>1 &
Wenn das OTN-Cookie richtig gesetzt ist, kommt keine Umleitung zur Anmeldeseite mehr; die Datei wird direkt heruntergeladen.
Bei Firefox 3 hat sich allerdings das Format der Cookies-Datei geädert - es gibt nun keine cookies.txt mehr - diese heißt nun cookies.sqlite. Allerdings gibt es auch hierfür schon eine Lösung. Einfach das Skript mit oracle als Parameter aufrufen und schon extrahiert es die Oracle-Cookies in eine Datei cookies.txt, die dann wieder für den wget-Aufruf verwendet werden kann.
Damit kann man auch längerlaufende Downloads sehr schön automatisiert (über Nacht) ablaufen lassen. Natürlich solltet Ihr die entstandenen Cookie-Dateien (wenn Ihr sie auf den Server kopiert) anschließend löschen oder mit einem speziellen User arbeiten und die Zugriffsrechte sehr eng setzen - da sind schließlich eure OTN Login-Daten drin ...
Und Lizenzbestimmungen beim Download sind hiervon natürlich völlig unberührt - ob Ihr mit wgetoder mit dem Browser arbeitet: Es gilt stets das gleiche ... und man muss die Webseite mit dem License Agreement natürlich vorher lesen .. aber das ist eh' klar, oder?

1 Kommentar:

Anonym hat gesagt…

wir holen uns die patchsets direkt vom oracle FTP server (updates.oracle.com) auf unseren unix server per kommandozeile.

bisher hat es gereicht die patche einzeln herunterzuladen aber man könnte es auch per skript automatisieren, da stört nur das anmelden am FTP server mit den metalink daten.

Beliebte Postings