PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : nach datum löschen


sepp2k
01.04.2004, 11:29
wie könnte eine Skript-Anweisung heissen die mir jeweils die neusten fünf dateien (logging) beibehält und die rechstlichen löscht, egal ob zeitstempel oder Datum in Dateiname.
Bin dankbar um jeden Input


Jan Krüger
01.04.2004, 16:34
Bei mir funktioniert folgendes gut (löscht nach Zeitstempel):

ls -1rt | head -n -6 | xargs rm

Ich garantiere aber für nichts, also vor dem Testen bitte ein Backup machen. ;)

sepp2k
02.04.2004, 12:09
Hab nun exakt das gefunden was ich gesucht habe, das ganze dient als logfile Rotation. Nur ist das bestehende in Perl geschrieben!
ist jemand fähig dazu, dieses script in shell umzuschreiben bzw so nett um das zu tun?! :rolleyes:
wäre echt sehr dankbar!

#!/usr/local/bin/perl
$LOGPATH='/usr/local/apache/logs';
@LOGNAMES=('access_log','error_log','referer_log','agent_log');
$PIDFILE = 'httpd.pid';
$MAXCYCLE = 4;

chdir $LOGPATH; # Change to the log directory
foreach $filename (@LOGNAMES) {
for (my $s=$MAXCYCLE; $s >= 0; $s-- ) {
$oldname = $s ? "$filename.$s" : $filename;
$newname = join(".",$filename,$s+1);
rename $oldname,$newname if -e $oldname;
}
}
kill 'HUP',`cat $PIDFILE`;