find befehl mit delete funktioniert nicht

Status
Not open for further replies.

555NASE

Patron
Joined
Mar 3, 2017
Messages
202
Ich möchte mein backup script um folgendes erweitern.

Es soll nur eine bestimmte anzahl an Backups aufheben und den rest löschen - deshalb wollte ich folgenden find Befehl benutzen :

Code:
find /VerzeichnisZumBackup/Backupname/*  -type d -maxdepth 0 ctime 2

hier zeigt er auch das entsprechende Ergebnis an wie zb. /VerzeichnisZumBackup/Backupname/2017_11_05


wenn ich jetzt den Befehl um - delete erweiter
Code:
find /VerzeichnisZumBackup/Backupname/*  -type d -maxdepth 0 ctime 2 -delete

passiert nichts.

Kommt das FreeNAS mit dem Befehl nicht klar? Es kommt auch zu keiner Fehlermeldung
 

MrToddsFriends

Documentation Browser
Joined
Jan 12, 2015
Messages
1,338
Das zu löschende Verzeichnis ist vermutlich nicht leer, oder?

Aus der find manpage:
The -delete primary will fail to delete a directory if it is not empty.
 

ObiTobi

Patron
Joined
Jul 12, 2013
Messages
316
Ich möchte mein backup script um folgendes erweitern.

Es soll nur eine bestimmte anzahl an Backups aufheben und den rest löschen - deshalb wollte ich folgenden find Befehl benutzen :

Code:
find /VerzeichnisZumBackup/Backupname/*  -type d -maxdepth 0 ctime 2

hier zeigt er auch das entsprechende Ergebnis an wie zb. /VerzeichnisZumBackup/Backupname/2017_11_05


wenn ich jetzt den Befehl um - delete erweiter
Code:
find /VerzeichnisZumBackup/Backupname/*  -type d -maxdepth 0 ctime 2 -delete

passiert nichts.

Kommt das FreeNAS mit dem Befehl nicht klar? Es kommt auch zu keiner Fehlermeldung
Mache doch statt -delete folgendes Eintrag

-exec rm -rf '{}' ';'

Aber Achtung- es wird ALLES was gefunden wird ohne Rückfragen gelöscht!


Gesendet von meinem SM-G920F mit Tapatalk
 

555NASE

Patron
Joined
Mar 3, 2017
Messages
202
@ObiTobi Kennst du dich mit bash-scripting aus ?
Dann würde hier hier mal das Vollständige script posten zur Überprüfung.
 

ObiTobi

Patron
Joined
Jul 12, 2013
Messages
316
@ObiTobi Kennst du dich mit bash-scripting aus ?
Dann würde hier hier mal das Vollständige script posten zur Überprüfung.
Also auskennen so wirklich wäre in meinem Fall sicherlich gelogen aber meistens komme ich schon klar [emoji16][emoji16][emoji16]

Gesendet von meinem SM-G920F mit Tapatalk
 

555NASE

Patron
Joined
Mar 3, 2017
Messages
202
Ziel des Script soll sein in einem bestimmten Zeitraum (zb. Täglich) ein Backup anzulegen in ein Verzeichnis mit dem aktuellen Tagesdatum.
Es werden immer die letzten x Backups aufgehoben, somit werden alle älteren gelöscht.

Das script stammt ursprünglich von hier. Abschnitt "Beispiel Minimal Variante"

Code:
#!/bin/sh

heute=$(date +%Y_%m_%d)
#aufbewahrung=6  # Noch nicht eingepflegt



quelle1=/mnt/Volume1/Daten_Bastian/			 # Variable für den Quellpfad  
ziel1=/mnt/RDX_LW/					   # Variable für den Zielpfad
bak1=Daten_Bastian/					 # Variable der oben erstellt wird

mkdir /mnt/RDX_LW"${bak1}"				  # Verzeichnis wird erstellt
######################################
######################################



quelle2=/mnt/Volume1/Daten_Buero/			  # Variable für den Quellpfad
ziel2=/mnt/RDX_LW/					 # Variable für dan Zielpfad
bak2=/Daten_Buero/					 # Backuppfad der oben erstell wird

mkdir /mnt/RDX_LW"${bak2}"				  # Verzeichnis wird erstellt

######################################
######################################

#NICHT VERÄNDERN !!!
#rsync -av --delete "${quelle1}" "${ziel1}${heute}/" --link-dest="${ziel1}last/"
#ln -nsf "${ziel1}${heute}" "${ziel1}last"
#find "${ziel1}${heute}" -mtime 6 -delete -type d
#NICHT VERÄNDERN !!!


rsync -av --delete "${quelle1}" "${ziel1}${bak1}${heute}/" --link-dest="${ziel1}${bak1}last/"
ln -nsf "${ziel1}${bak1}${heute}" "${ziel1}${bak1}last"
#find "${ziel1}${bak1}${heute}" -mtime 6 -delete -type d
find "${ziel1}${bak1}" -type d -maxdepth 0 -ctime 6 -exec rm -rf  '{}' ';'


rsync -av --delete "${quelle2}" "${ziel2}${bak2}${heute}/" --link-dest="${ziel2}${bak2}last/"
ln -nsf "${ziel2}${bak2}${heute}" "${ziel2}${bak2}last"
#find "${ziel2}${bak2}${heute}" -mtime 6 -delete -type d
find "${ziel2}${bak2}" -type d -maxdepth 0 -ctime 6 -exec rm -rf  '{}' ';'

exit 0

 
Last edited:

ObiTobi

Patron
Joined
Jul 12, 2013
Messages
316
Auf den ersten Blick sieht ja nicht schlecht oder falsch.
Es wäre aber sicherlich nicht schlecht, wenn du schreiben würdest was du genau machen/erreichen willst

Gesendet von meinem SM-G920F mit Tapatalk
 

555NASE

Patron
Joined
Mar 3, 2017
Messages
202
Auf den ersten Blick sieht ja nicht schlecht oder falsch.
Es wäre aber sicherlich nicht schlecht, wenn du schreiben würdest was du genau machen/erreichen willst

Gesendet von meinem SM-G920F mit Tapatalk


Hab den Post angepasst. Aber ich denke mal das du wissen wirst um was es hier geht.
 

Rand

Guru
Joined
Dec 30, 2013
Messages
906
Der find -delete löscht aber nur verzeichnisse so wie es da geschrieben ist (- type d) - Absicht?
Eine Beschreibung "alle alten [dateien, verzeichnisse, dateien und verzeichnisse] löschen wäre durchaus hilfreich;)
 
Status
Not open for further replies.
Top