crypto
Goto Top

Bash - Dateien löschen die älter wie 5 Tage sind -- AUSNAHME Dateien vom 28. eines Monats - Jede Datei die an einem Freitag erstellt wurde

Leider bin ich in Bash/PHP nicht wirklich fit jedoch würde ich folgende Lösung für eine private tägliche Sicherungslösung brauchen

Hallo,

Ich habe folgendes Problem was ich nicht ganz selbst gelöst bekomme.

Aktuell werden tägliche private Sicherungen (ZIP Datei) von mir via FTP auf einem Linux Server gesichert.


Damit die Sicherungen nicht irgendwann den Plattenplatz sprengen benötige ich eigentlich nur ein relativ einfaches Script was folgende Dateien löscht:

- Alle Dateien die älter wie 5 Tage sind


Jedoch gibts folgende Ausnahme:

- Wenn die Datei an einen Freitag erstellt wurde = nicht löschen
- Wenn die Datei an einem 28. eines Monats erstellt wurde = nicht löschen


Leider bekomme ich diese Ausnahmen via Bash nicht realisiert, Google etc. hat mir jetzt leider auch nicht weitergeholfen.

Hat jemand ggfs. einen Tipp oder einen Lösungsansatz (der unter Linux läuft, am besten Bash) für mich? Wäre euch sehr dankbar.

Content-Key: 195469

Url: https://administrator.de/contentid/195469

Printed on: April 24, 2024 at 02:04 o'clock

Member: nevermind2012
nevermind2012 Dec 06, 2012 at 13:00:06 (UTC)
Goto Top
Hi face-smile

Wo haperts denn?

Über alle Dateien des Verzeichnises iterierst du mit:

for FILE in $(ls); do
tu_etwas
done

Das Datum der Datei bekommst du z.B. per:

date=$(stat -c %y ${FILE} | cut -d " " -f 1)

Dein zugehörigen Wochentag gibt's so:

day=$(date --date="$date" | cut -d " " -f 1)

Die Differnz zwischen Dateidatum und heute mit:

diff=$((($(date +%s)-$(date --date="$date" +%s))/86400))

Jetzt brauchst du das ganze nur noch mit einem if und rm zusammensetzen und fertig - also fast :D