Page 1 of 1

Neuste Datei in einem Ordner löschen?

Posted: 2003-07-04 14:08
by kikman
Hi,

Ich kopiere mir via Perl-Script/cron Log-Dateien in einen Ordner. Da das letzte Log beim kopieren noch nicht komplett ist, möchte ich es gern vor dem nächsten "Copy-Cron" löschen. Das Perl-Script kopiert nämlich nur noch nicht existierende Log Dateien. Delshalb würde ich gern das zuletzt kopierte Log auch via cron wieder löschen. Ist es irgendwie möglich, mit einem Script, die zuletzt kopiere Log-Datei zu löschen?

Gruß
Kikman

Re: Neuste Datei in einem Ordner löschen?

Posted: 2003-07-04 14:48
by johny
rm log_yyyymmdd.log
wieso kopierst du die log datei nicht eben aktuell?

Re: Neuste Datei in einem Ordner löschen?

Posted: 2003-07-04 14:51
by kikman
Hi,

Ich bekomm die Logs von einem Counter-Strike Server, und erstelle damit stündlich Statistiken. Deshab möchte ich das via cron automatisieren.

Kikman

Re: Neuste Datei in einem Ordner löschen?

Posted: 2003-07-04 15:19
by drsnuggles
warum nimmste nich rsync? :)

Re: Neuste Datei in einem Ordner löschen?

Posted: 2003-07-04 15:51
by dea
man find

Re: Neuste Datei in einem Ordner löschen?

Posted: 2003-07-04 16:34
by drsnuggles
biste sicher,dass man in dem fall mit find was reissen kann? hab da so meine zweifel ;)

Re: Neuste Datei in einem Ordner löschen?

Posted: 2003-07-04 17:50
by dea

Code: Select all

find /pfad/zum/verzeichnis -type f -atime +1 -exec rm -f {} ;
atime ist der Schlüssel zum Erfolg ...

Re: Neuste Datei in einem Ordner löschen?

Posted: 2003-07-04 17:50
by kikman
ich nochmal :roll:

Also mit find, hab ich da auch nicht auf die Reihe bekommen :oops:

Kann man da evtl. nach dem Dateinamen gehen?

Die Log-Dateien heißen:

L070413.log, L070414.log, L070415.log, L070416.log, ............

Kann man da irgendwas machen, das immer die Logdatei gelöscht wird, die die größte Zahl im Dateinamen hat?

Jetzt wirds kompliziert, oder?? :?

Gruß
Kikman

Re: Neuste Datei in einem Ordner löschen?

Posted: 2003-07-04 17:53
by dea

Code: Select all

nummer=$(ls L[0-9]*.log|cut -c "2-"| cut -f"1" -d"."|sort); rm L${nummer}.log
... my way (ungetestet)

Re: Neuste Datei in einem Ordner löschen?

Posted: 2003-07-04 18:59
by olaf.dietsche
Kikman wrote:Kann man da evtl. nach dem Dateinamen gehen?

Die Log-Dateien heißen:

L070413.log, L070414.log, L070415.log, L070416.log, ............

Kann man da irgendwas machen, das immer die Logdatei gelöscht wird, die die größte Zahl im Dateinamen hat?

Code: Select all

rm `ls L*.log | tail -1`

Re: Neuste Datei in einem Ordner löschen?

Posted: 2003-07-04 19:13
by drsnuggles

Code: Select all

find /pfad/zum/verzeichnis -type f -atime +1 -exec rm -f {} ;
das besser nich ausprobieren,sonst sind die logs weg :(
er will ja lediglich das letzte loeschen und nicht all die, die (wie in diesem codebeispiel) laenger als 24 stunden nicht benutzt wurden.

Code: Select all

file=$(ls -t L*.log 2>/dev/null |head -n1) && rm -f $file
das sollte funzen. ls sortiert selber nach der letzten aenderungszeit und wenn ls keinen fehler liefert wird das file geloescht

Re: Neuste Datei in einem Ordner löschen?

Posted: 2003-07-04 19:25
by kikman
:-D :-D :-D

Vielen Dank!!!

Es funzt.....

Weiß garnicht wofür ich mich jetzt entscheiden soll :-D

Nochmals Danke!

Gruß
Kikman

Re: Neuste Datei in einem Ordner löschen?

Posted: 2003-07-05 21:33
by dea
DrSnuggles wrote:

Code: Select all

find /pfad/zum/verzeichnis -type f -atime +1 -exec rm -f {} ;
das besser nich ausprobieren,sonst sind die logs weg :(
er will ja lediglich das letzte loeschen und nicht all die, die (wie in diesem codebeispiel) laenger als 24 stunden nicht benutzt wurden.

Code: Select all

file=$(ls -t L*.log 2>/dev/null |head -n1) && rm -f $file
das sollte funzen. ls sortiert selber nach der letzten aenderungszeit und wenn ls keinen fehler liefert wird das file geloescht
Selber noch kein 'man find' gemacht? Deine Variante geht nur nach der letzten Ã?nderung, nicht nach dem letzten Zugriff ...

zu find: Ob plus, ob minus ob garnichts entnimmt man am besten der lokalen Manpage - find unterscheidet sich nämlich sehr gerne zwischen den Distris/Derivaten (weshalb ich auch immer "ungetestet" dazuschreibe ;) )