PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : if-abfrage [dateigröße]



hmikux
15-09-2003, 15:13
hallo leute,

ich habe ein shellscript für meine anforderung angepasst - hierfür reichte mein scripting-wissen gerade noch, jedoch hänge ich an einem prob.

in diesem script werden div. ergebnisse in eine log-datei unter /var/log/ergbnis.log geschrieben, auch wenn alles OK ist. dies bedeutet nun aber, das die datei ziemlich gross werden kann, und so unnötigen plattenplatz beansprucht.

folgendes würde ich gerne mit einer if-anweisung einbauen:
if /var/log/ergebnis.log > 5120000byte; then
rm -r /var/log/ergenis.log
echo `date`" # Datei wurde neu angelegt"
else
......weiter im Shellscript...blablablabla

Wie programmiere ich das??? liege ich mit meinem script schon irgendwie richtig?

pitu
15-09-2003, 15:55
Beuntz das Programm "logger", dann kannst du es ueber den syslogd steuern.

gruss,
pitu

axeljaeger
15-09-2003, 15:56
du kannst doch sicher ls irgendwie einspannen, das es dir die Dateigröße anzeigt. Dann mit test testen und ggf. Datei löschen.

phate
15-09-2003, 16:02
Also entweder mit etwas in Richtung
FILESIZE=`du -k /var/log/ergenis.log | cut -f 1`

if [$FILESIZE -gt 5120]; then
rm -r /var/log/ergenis.log
fiin Dein Skript einbauen oder aber du verwendest logrotate. logrotate wird per cron periodisch ausgeführt und überprüft ihm zu konfigurierende Logdateien auf verschiedene Kriterien. Dort kannst Du auch angeben, dass Deine Logdatei bei Erreichen einer gewissen Grösse neu angelegt wird. Genaueres siehe
man logrotate

hmikux
16-09-2003, 06:28
hallo,

danke für die hilfe, werde mal die lösung von phate versuchen!!!

DANKE!!!

phate
16-09-2003, 09:48
Noch ein wenig Hilfe zur Selbsthilfe. Die eckigen Klammer nach if sind ein Synonym für das Kommando Test, mit dem dann per -gt der Vergleich der beiden Werte durchgeführt wird. Schadet nicht sich mal die manpage dazu an zu schauen.
man test