Mal ne Linux Shell frage...

Servus,

Bei uns ist ein Linux Server (Open Suse 10.2) mit Postgres 8.1 im Einsatz.

Die Conf-Datei ist so eingestellt, dass alle 10 MB eine neue LogDatei erstellt wird.
Dieses Logverzeichniss befindet sich in “/home/postgres/data/pg_log”

Da unsere behinderte Programmiersprache die Fehlermeldungen des ODBC-Treibers nicht weitergibt möchte ich nun ein miniprogramm schreiben (Windows) das mir diese Logdatei ausgibt.

Im Linux server ist Samba schon konfiguriert und funktioniert. Das Freigabe-Verzeichnis ist:
/home/cbl

ich habe nun angefagen ein skript zu schreiben, dass folgendes machen soll:
#!/bin/sh

wechsele ins Log verzeichnis:
cd /home/postgres/data/pg_log

sortiere dort die Dateien nach dem Datum:
ls -lt * > ./tmp.txt

nimm dann die neueste Datei
???

und von dieser Datei dann nur die letzten 100 Zeilen
???

und speichere diese in eine neue Datei.
??? pgtext.log

und kopiere sie ins Samba verzeichniss:
cp -f ??? /home/cbl/pgtext.log

Weiss jemand, wie die von mir oben geschriebenen ??? zu erstzen sind?

Gruß Ingo

Warum setzt du im Sambashare keinen Symlink auf die Logs und analysierst die Logs im Client?

ln -s /log/verzeichnis /samba/share/name

Gruß Uwe

  1. Ich lerne ein bischen Shell
  2. Im Programm ist der Aufwand größer

Ich habe ja schonmal folgendes:

#!/bin/sh
cd /home/postgres/data/pg_log
ls -rt | tail -n 1

Problem ist jetzt nur, dass ich die ls-Ausgabe in eine Variable reinkriegen müsste…

Dann noch ein Tail auf diese Datei und diese Ausgabe in eine Datei lenken…

Habe die Lösung!!!

#!/bin/sh
cd /home/postgres/data/pg_log
VAR=$(ls -rt | tail -n 1)
VAR2=$(tail $VAR -n 20)
echo $VAR2 > /home/CBL/log.txt

damit werden mir die 20 letzten Zeilen der neuesten logdatei in eine Datei namens log.txt geschrieben

Danke nochmals…