PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Crontab - Ausgabe in Datei



jochen83
21.03.05, 10:51
Hallo zusammen,

ich starte jeden Tag um 20.00 Uhr einen Cronjob der ein SH-Skript ausführt.
Sieht so aus.
00 20 * * * /opt/lampp/htdocs/services/verarbeitung.sh

Die Ausgabe des Skripts möchte ich nun in eine Datei umleiten. Das klappt auch wunderbar:
00 20 * * * /opt/lampp/htdocs/services/verarbeitung.sh 1>/opt/lampp/htdocs/log/datei.log 2>&1

Nun würde ich aber der log-Datei gerne einen Zeitstempel geben, damit Sie nicht jeden Tag überschrieben wird. Wie kann ich dies anstellen. Die Log-Datei sollte dann irgendwie so aussehen
datei_21_03_2005.log

Im vorraus schonmal danke für eure Hilfe.

Gruss
Jochen

Tomek
21.03.05, 11:20
Ersetze:

00 20 * * * /opt/lampp/htdocs/services/verarbeitung.sh 1>/opt/lampp/htdocs/log/datei.log 2>&1
mit:

00 20 * * * /opt/lampp/htdocs/services/verarbeitung.sh 1>/opt/lampp/htdocs/log/datei_`date +%d%m%y`.log 2>&1

jochen83
21.03.05, 11:50
Danke, hat einwandfrei funktioniert.

jochen83
23.03.05, 07:35
Hm mist, jetzt krieg ich folgende Fehlermeldung, woran kann das liegen?

/bin/bash: -c: line 1: unexpected EOF while looking for matching ``'
/bin/bash: -c: line 2: syntax error: unexpected end of file

Escorte2
23.03.05, 12:26
Der CRON interpretiert den date-Befehl in dieser Zeile falsch. K.A. wie man das richtig löst :D

Ein andere Möglichkeit wäre, den Anfang des Scripts verarbeitung.sh zu ändern:


Zeile 1: #!/bin/sh (die Zeile 1 so lassen)
Zeile 2: exec 1>/opt/lampp/htdocs/log/datei_`date +%d%m%y`.log 2>&1

Damit wird der Output ebenfalls in die Datei mit Timestamp umgelenkt.

Greetz,
E2

Jasper
23.03.05, 15:40
backticks für command substitution sollte man vermeiden und stattdessen $() verwenden.
bachticks behandeln einige zeichen etwas speziell, wogegen $() diese sonderbahndlung nicht macht. details siehe manpage.


-j