Neuste Datei in einem Ordner löschen?
Neuste Datei in einem Ordner löschen?
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
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?
rm log_yyyymmdd.log
wieso kopierst du die log datei nicht eben aktuell?
wieso kopierst du die log datei nicht eben aktuell?
Re: Neuste Datei in einem Ordner löschen?
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
Ich bekomm die Logs von einem Counter-Strike Server, und erstelle damit stündlich Statistiken. Deshab möchte ich das via cron automatisieren.
Kikman
-
drsnuggles
- Posts: 9
- Joined: 2002-11-04 20:52
Re: Neuste Datei in einem Ordner löschen?
warum nimmste nich rsync? :)
-
drsnuggles
- Posts: 9
- Joined: 2002-11-04 20:52
Re: Neuste Datei in einem Ordner löschen?
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?
Code: Select all
find /pfad/zum/verzeichnis -type f -atime +1 -exec rm -f {} ;Re: Neuste Datei in einem Ordner löschen?
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
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?
Code: Select all
nummer=$(ls L[0-9]*.log|cut -c "2-"| cut -f"1" -d"."|sort); rm L${nummer}.log-
olaf.dietsche
- Posts: 401
- Joined: 2002-12-19 02:06
- Location: Siegburg
Re: Neuste Datei in einem Ordner löschen?
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`-
drsnuggles
- Posts: 9
- Joined: 2002-11-04 20:52
Re: Neuste Datei in einem Ordner löschen?
Code: Select all
find /pfad/zum/verzeichnis -type f -atime +1 -exec rm -f {} ;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 $fileRe: Neuste Datei in einem Ordner löschen?
:-D :-D :-D
Vielen Dank!!!
Es funzt.....
Weiß garnicht wofür ich mich jetzt entscheiden soll :-D
Nochmals Danke!
Gruß
Kikman
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?
Selber noch kein 'man find' gemacht? Deine Variante geht nur nach der letzten Ã?nderung, nicht nach dem letzten Zugriff ...DrSnuggles wrote:das besser nich ausprobieren,sonst sind die logs weg :(Code: Select all
find /pfad/zum/verzeichnis -type f -atime +1 -exec rm -f {} ;
er will ja lediglich das letzte loeschen und nicht all die, die (wie in diesem codebeispiel) laenger als 24 stunden nicht benutzt wurden.
das sollte funzen. ls sortiert selber nach der letzten aenderungszeit und wenn ls keinen fehler liefert wird das file geloeschtCode: Select all
file=$(ls -t L*.log 2>/dev/null |head -n1) && rm -f $file
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 ;) )