Jump to content

Daten löschen die älter als X Tage sind


i-B4se

Recommended Posts

Moinsen :)

Ich bin nicht so der Scripte Schreiber und wenn es ums löschen von Dateien geht bin ich echt vorsichtig geworden, da ich mit sowas schon mal meinen Server gewiped habe 😱

 

Ich möchte von meinen Überwachungskameras die Daten löschen, die X Tage alt sind. Anschließend sollen die leeren Ordner gelöscht werden.

Ist dieses Script so korrekt?

 

#!/bin/bash
#####################################
## Script zum Löschen alter Überwachungsvideos/Bilder.
## Alle Dateien die älter < 14 Tage sind werden gelöscht.

find /mnt/surveillance/Surveillance/ -mtime +14 -type f  -exec rm -rf {} \;

# Wartezeit um anschließend die leeren Ordner zu löschen
sleep 180

find /mnt/surveillance/Surveillance/Eingang_links/ -empty -type d -delete
find /mnt/surveillance/Surveillance/Eingang_rechts/ -empty -type d -delete
find /mnt/surveillance/Surveillance/Hinten_links/ -empty -type d -delete    
find /mnt/surveillance/Surveillance/Hinten_rechts/ -empty -type d -delete
find /mnt/surveillance/Surveillance/Garage/ -empty -type d -delete 

/usr/local/emhttp/webGui/scripts/notify -i normal -s "Dateien wurden gelöscht" -d "Script wird beendet"

exit o

 

Besten Dank vorab!

Link to comment
On 3/14/2022 at 5:17 PM, i-B4se said:

Besten Dank vorab!

Sieht auf den ersten Blick nicht verkehrt aus.

 

Warum löscht du danach die Ordner und vor allem die lange Wartezeit danach bzw. warum überhaupt sleep? Die Befehle werden nacheinander ausgeführt und nicht parallel.

 

exit 0

nicht exit o... :) brauchst du aber nicht zwingend.

 

EDIT: Hier auch nochmal der Hilfetext von notify in Unraid nur falls du noch was hinzufügen oder anders machen willst:

 

  • Thanks 1
Link to comment

Warum nicht einfach alle leeren Ordner löschen?

find /mnt/surveillance/Surveillance/ -empty -type d -delete

 

find arbeitet grundsätzlich rekursiv, wird also auch alle Unterordner löschen, die leer sind.

 

Du kannst das Kommando vorher übrigens einfach testen, in dem du dir nur die Dateinamen mit deren Datum ausgeben lässt:

find /mnt/surveillance/Surveillance/ -mtime +14 -type f -exec ls -lh {} \;

 

 

  • Thanks 1
Link to comment

Danke euch.

18 hours ago, ich777 said:

Warum löscht du danach die Ordner und vor allem die lange Wartezeit danach bzw. warum überhaupt sleep? Die Befehle werden nacheinander ausgeführt und nicht parallel.

Weil ich sonst irgendwann 1000000 Ordner habe, aber ohne Inhalt.

Die Cams bauen das quasi nach "Jahr -> Monat -> Tag" auf.

Sleep nehme ich dann mal raus. Hab es gerne wenn alles schön nacheinander abgearbeitet wird, auch ruhig mit etwas Pause.

 

18 hours ago, ich777 said:

nicht exit o

Ups :D

8 hours ago, mgutt said:

Warum nicht einfach alle leeren Ordner löschen?

Da sind noch andere Ordner und die sind nicht unbedingt direkt immer gefüllt. Aber den Befehl werde ich mal testen.

 

9 hours ago, mgutt said:

Du kannst das Kommando vorher übrigens einfach testen, in dem du dir nur die Dateinamen mit deren Datum ausgeben lässt:

Ja.... aber wie schon gesagt, ich bin da echt vorsichtig geworden :D 

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...