PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Shell Script zum Exportieren eines Logfile in eine Oracle Datenbank



grechos
28.04.2006, 08:43
Moin an alle
Ich will ein Shell script bauen was mir eine Log dateien von einer HP-Ux Maschine in eine Oracle datenbank absaved
Mein Log wird automatisch über die mailx application aufgebaut
das heißt wenn mailx eine MAil raussendet speichere ich diese Meldung parallel in ein Log
Das Log ist ist ein Datenstring der mit ; trennt
Dieses Log will ich in die Datenbank einfügen lassen

Hat jemand eine Idee??



gruß an Alle

supersucker
28.04.2006, 09:03
Kuck dir mal


Load data infile

an.

Der Rest dürfte wohl klar sein.

EDIT: vllt. hilft dir das (http://www-db.stanford.edu/~ullman/fcdb/oracle/or-load.html) hier weiter.

grechos
28.04.2006, 09:50
hmm...
nicht so so wirklich ich mache das zum ersten mal
ein wenig mehr könnete hilfreich sein

cremi
28.04.2006, 10:48
hier die beschreibung zwar für mysql aber gilt auch für oracle
http://dev.mysql.com/doc/refman/4.0/de/load-data.html

hier sind syntax und beispiele für oracle
http://www.loader.datenbank-wissen.de/beispiel1.htm

damit solltest du zurecht kommen

sniffer
17.05.2006, 10:18
beispiel: schreib den ganzen quargl in ein file und führ es dann aus. den teil in den <> nach deinen wünschen ändern.

# dein logfile angeben
LOGFILE=</tmp/log>

# sqlscript zusammenbauen
SQLSCRIPT=</tmp/tmpsql>
echo "update <table>" > ${SQLSCRIPT}
echo "set <zeile> = '${LOGFILE}'," >> ${SQLSCRIPT}
echo "commit;" >> ${SQLSCRIPT}
echo "exit" >> ${SQLSCRIPT}

# berechtigung und owner ändern
chown <oracleuser:oraclegroup> ${SQLSCRIPT}
chmod 777 ${SQLSCRIPT}

# script ausführen
DB=<dein db connect string>
USER=<dein ora user>
PASSWORT=<passwort vom user>
sqlplus ${USER}/${PASSWORT}@${DB}@${SQLSCRIPT} # hier kann es sein das du den connectstring noch mal in eine eigene variable schreiben und das script das script danach ausführen musst - weiß ich jetzt nicht genau.

#löschen der temp. files damit du beim nächsten lauf nicht alles doppelt in der db hast.
rm ${SQLSCRIPT}
rm ${LOGFILE}

gruß
roland