Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Debian Linux älteste Datei löschen

Frage Linux Debian

Mitglied: iceget

iceget (Level 2) - Jetzt verbinden

03.03.2014, aktualisiert 13.11.2014, 4415 Aufrufe, 5 Kommentare

Hallo liebe Community,

ich habe folgendes Problem:
Ich synchronisiere täglich auf einen Backupserver meine Daten (von verschiedenen Servern).
Dort werden am Backupserver Ordner angelegt, die dann gesichert (z.B. 20140301-Server-1) werden.
Dann sind wieder einzelne Backups dabei, die eben nur 20140301-Srv2.7z Dateien sichern.

Ich habe bereit eine Routine geschrieben, sobald der lokale Speicherplatz 90% übersteigt, das dieser automatisch eine Mail rausschickt.

Nun würde ich jedoch gerne nach erreichen der 90% automatisch vom Mountpoint /backups die ältesten 5 Dateien automatisch löschen lassen.

Leider habe ich bis jetzt immer nur Scripts gefunden, die ganze Ordner löschen, ... mir wäre es egal wenn die Ordner bestehen bleiben, und nur die Dateien gelöscht werden.

Die meisten Scripts die ich gefunden habe, löschen nur Dateien "älter als" aber nicht "die ältestens vom gesamten Verzeichnis..."

Habt ihr eine Idee oder so etwas schon mal umgesetzt? Einfach die ältesten 5 Dateien zu löschen..


Vielen Dank!

Lg Iceget
Mitglied: Arano
03.03.2014 um 15:08 Uhr
Hallo Iceget,

genau soetwas habe ich bei mir auch gemacht. Nur das ich mit jedem neuem Backup (3 Dateien), eben auch 3 alte lösche und so immer nur Backups der letzten X Tage (am Anfand habe ich leere DummyDateien erstellt und ihnen mit touch den passenden Zeitstempel versehen).

Bekomme es gerade nicht 100%ig zusammen, musst du noch mal probieren.
01.
for oldFile in `ls -t "/backupdir" | head -n3`; do 
02.
    echo "rm $oldFile" 
03.
done
Vieleicht war es auch ls -tr
Also den Inhalt des Verzeichnisses nach Zeit sortiert (-t) ausgeben und dann (head -n3) nur die ersten 3 Dateien.
(
-r um die Liste in umgekehrter Reihenfolge auszugeben... weiß gerade nicht in welche Richtung -t sortiert
)


~Arano
Bitte warten ..
Mitglied: Cthluhu
03.03.2014 um 16:39 Uhr
Hi,

Mit "ls -t" und "head -n3" ist Arano schon auf dem richtigen Weg. Nur einen Fallstrick gibts da noch: Wenn weniger als 3 Elemente da sind, wird alles gelöscht. Das sollte eventuell noch abgefangen werden.

Mit freundlichen Grüßen

Cthluhu
Bitte warten ..
Mitglied: Arano
LÖSUNG 03.03.2014, aktualisiert 13.11.2014
Hi,

Oh, das ist ein guter Hinweis... aber ich verstehe es nicht !?
@Cthluhu: Wieso sollte denn dann alles gelöscht werden ?
Das sieht doch gut aus:
01.
arano@home:~/test$ touch asd 
02.
arano@home:~/test$ touch wer 
03.
arano@home:~/test$ touch sdf 
04.
arano@home:~/test$ for i in `ls -t|head -n2`; do echo " rm $i"; done 
05.
 rm sdf 
06.
 rm wer 
07.
arano@home:~/test$ for i in `ls -t|head -n3`; do echo " rm $i"; done 
08.
 rm sdf 
09.
 rm wer 
10.
 rm asd 
11.
arano@home:~/test$ for i in `ls -t|head -n4`; do echo " rm $i"; done 
12.
 rm sdf 
13.
 rm wer 
14.
 rm asd 
15.
arano@home:~/test$ for i in `ls -t|head -n5`; do echo " rm $i"; done 
16.
 rm sdf 
17.
 rm wer 
18.
 rm asd 
19.
arano@home:~/test$ 

Aber es ist wohl doch `ls -tr`
Den die Datei "asd" habe ich zuerst angelegt -> die älteste und
die Datei "sdf" als letztes -> die jüngste.

In meinem Fall würde ich also das gerade gemachte Backup , als erste wieder löschen - auweia...
man ls
-t Nach Änderungszeit sortieren
Das listet mir die neueste Datei zuerst und die älteste zuletzt auf.
Also wie schon vorgeschlagen mit -r umdrehen, oder anstelle von head -> tail verwenden.


~Arano
Bitte warten ..
Mitglied: Cthluhu
LÖSUNG 03.03.2014, aktualisiert 13.11.2014
Hi Arano,

Der Denkfehler liegt schon in der Aufgabenstellung. Es handelt sich um Backups. Sind nur 3 Backups vorhanden und man löscht die letzten 5 Backups, sind alle Backups gelöscht (siehe Zeile 15 in deinem Beispiel). Da muss noch eine Abfrage rein, dass immer zumindest ein Backup übrig bleibt.

Mit freundlichen Grüßen

Cthluhu
Bitte warten ..
Mitglied: Arano
LÖSUNG 03.03.2014, aktualisiert 13.11.2014
Hahaha... achso ja stimmt !

Ich dachte der Fehler wäre im Script... also das etwas wie `rm *` erzeugt würde was dann alles löscht.
Aber du hast Recht !
Da es sich um Backups handelt, lieber auf Nummer sicher gehen.
Ich lösche bei mir zwar auch nur, sofern es beim kopieren keine Fehler gab. Und um etwas Vorlauf zu erzeugen habe ich einfach ein paar leere Text-Dateien erstellt. Aber die Sicherung, das mindestens das letzte nicht versehentlich weg gelöscht wird, kann definitiv nicht schaden.

Aber da kümmere ich mich später mal drum. Momentan läuft DIESES Backup eh nicht da ist das egal
Mir ist die Backupfestplatte kaputt gegangen und die Gelegenheit wird genutzt etwas umzurüsten
Bei wieder einrichten wird es dann angepasst.


Danke für den Hinweis !


Schönen Abend noch
~Arano
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(3)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst Texteil anhand zweier Vorgaben aus Datei löschen (12)

Frage von tiforst zum Thema Batch & Shell ...

Batch & Shell
gelöst älteste dateien via batch löschen (6)

Frage von cali169 zum Thema Batch & Shell ...

Linux Netzwerk
VPN Server mit Drosselung Linux Debian basiert (4)

Frage von Niklas434 zum Thema Linux Netzwerk ...

Linux Tools
Mit Linux am ende einer Datei eine Leerzeile einfügen (8)

Frage von OIOOIOOIOIIOOOIIOIIOIOOO zum Thema Linux Tools ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...