Log Skript

S

SpliceX

Grünschnabel
Servus,

ich versuche ein Log Skript zu schreiben das folgendermaßen ablaufen soll. Eintrag mit Datum, PID und ein bissien Text in eine TXT. Alles was älter ist als eine im Skript hinterlegte Zahl soll rausgelöscht werden.

Habe jetzt folgendes Konstrukt gebastelt:

oldEntries=30
echo "[$(date +'%F %T') ($PPID)] $*" >> log.txt
logfile=$(awk -F"\[|\]| " -vD=$(date -d "-$oldEntries Days" +"%Y-%m-%d") '{if($2>D) print $0}' log.txt)
echo "${logfile}" > log.txt


Das Problem:

Es werden ZWEI Dateien erstellt, eine mit Einträge eine ohne. Alte Einträge werden nicht gelöscht.



Besten dank.
 
Da wirst Du Dir wohl etwas mehr Mühe mit dem Erklären, was da überhaupt passieren soll, geben müssen. Code-Tags und Shebang wären auch ganz nett.
 
Also es sollte folgendes passieren:

man gibt im Terminal ein: sh log.sh test1

Es sollte das Datum in die log.txt geschrieben werden mit folgendem Format: [JJJJMMTT HH:MI:SS (nnnn)] Text
nnnn ist die PID des schreibenden Prozesses. Und in der Zeile mit dem AWK, plus die darauf folgende, soll nach alter der Einträge gefiltert werden.

Hab jetzt spasseshalber mal die Datei log.sh (dort steht der Code drinnen) in ein Anderes Verzeichnis geschoben. Jetzt geht garnix mehr. Es kommt nur noch:

: not found
awk: cannot open log.txt (No such file or directory)



Nachtrag: Nachdem ich eine neue Datei auf Unix angelegt habe und alles Kopiert habe, geht's nun.


Dieser Thread kann geschlossen werden. Vielen Dank an die Helfenden.
 
Zuletzt bearbeitet:

Ähnliche Themen

Shell Skript beschleunigen

Kill Skript

Last mit etc/passwd anzeigen lassen

awk skript: Probleme mit if und else Anweisungen

Prozess aus eigenem Init script wird gekillt

Zurück
Oben