Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Ältestes File in einem Directory löschen

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - Allgemein
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Kurt
Gast





BeitragVerfasst am: 02. März 2003 13:04   Titel: Ältestes File in einem Directory löschen

Hi!

Ich habe ein Directory in dem per Cron-Job jede Woche ein Backup mit der Data-Partition des Rechners mit einem entsprechenden Script erstellt wird. Ab und zu starte ich das Backup-Script auch von Hand. Die Dateien haben dann folgendes Format: data-YYYYMMDD.tar.gz, also z.B. data-20030302.tar.gz. Nun möchte ich aber höchstens 7 verschiedene Versionen des Data-Backups behalten. Momentan mache ich das folgendermassen:

code:

rm /mnt/backup/trillian/trillian-data-`date -d '7 weeks ago' +%Y%m%d`.tar.gz



Sobald ich aber das Backup-Script von Hand starte oder der Rechner während des Cron-Jobs gerade ausgeschaltet war und der Cron-Job von Anacron beim nächsten Start ausgeführt wurde, fällt mein Script auf die Nase. Wie kann ich es abändern, dass jeweils das älteste Backup gelöscht wird? Sprich ich habe im Backup-Directory sieben Backups und bei jedem Start des Backup-Scripts wird ein neues erstellt und das älteste wieder gelöscht.

Vielen Dank,
Kurt
 

Jochen
Gast





BeitragVerfasst am: 02. März 2003 19:04   Titel: Re: Ältestes File in einem Directory löschen

Ich würde das Datum im Namen erst mal als Information für den Betrachter abtun und es nicht auszuwerten versuchen. Wenn Du einfach nur die letzten 7 Backups behalten willst, würde ich wie folgt vorgehen:
code:
rm -f $(ls -t trillian-data-* | tail -n +Cool
"ls -t" sortiert nach der Modification Time, jüngste zuerst, älteste zuletzt. "tail" gibt erst ab Zeile 8 die aufgelisteten Dateinamen weiter. Wenn also nur 1-7 Dateien existieren, wird nix ausgegeben. Durch die Option "-f" bei rm wird dazu keine Fehlermeldung ausgegeben, sondern einfach weitergemacht. Erst die 8. und weitere Dateien werden ausgegeben und dann durch rm gelöscht.

Jochen
 

Kurt
Gast





BeitragVerfasst am: 02. März 2003 19:44   Titel: Re: Ältestes File in einem Directory löschen

Hi Jochen!

Cool, Danke! Du solltest wirklich ein Buch über Shells schreiben Smile.

Gruss,
Kurt
 

bazik
Gast





BeitragVerfasst am: 03. März 2003 9:01   Titel: Re: Ältestes File in einem Directory löschen

>> Cool, Danke! Du solltest wirklich ein Buch über Shells schreiben Smile.

Sag ich doch Wink
 

Jochen
Gast





BeitragVerfasst am: 03. März 2003 15:54   Titel: Re: Ältestes File in einem Directory löschen

Und das, wo Lösung oben bis auf die Kommandosubstitution $() und die Pipeline gar nix mit der Shell an sich zu tun hat...

Jochen
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - Allgemein Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy