Synology: Suche Script um alte Ordner mit Inhalt zu Löschen
- FireBird
- Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
- Beiträge: 28527
- Registriert: Fr 9. Dez 2005, 09:59
- Receivertyp: SRP-2401CI+ TFIR
vu+ Duo 4k - Wohnort: Wien
AW: Synology: Suche Script um alte Ordner mit Inhalt zu Löschen
Na dann sind wir ja schon dort, wo wir hinwollen. Das müsste dann der komplette Befehl sein.
find /volume1/Amaryllo/iSSa0bs1k -type d -name "20*" -maxdepth 1 -cmin +120 -exec rm -r {} \;
Was machen die Optionen:
-type d ... Nur Verzeichnisse prüfen, keine Dateien
-name "20*" ... Nur Verzeichnisse prüfen, deren Namen mit "20" beginnen. Dann wird nicht auch das @eadir-Verzeichnis gelöscht.
-maxdepth 1 ... Nur die erste Ebene durchsuchen, also das angegebene Rootverzeichnis
-cmin +120 ... Nur Verzeichnisse ausgeben, deren Status vor mehr als 120 Minuten geändert wurden. Die Zahl wirst Du noch anpassen müssen.
-exec ... Die Treffer nicht an die Konsole senden, sondern einen Befehl ausführen
rm -r ... Dateien und Verzeichnisse rekursiv löschen
{} ... Wird von find bei jedem Treffer durch den Verzeichnisnamen ersetzt
\; ... Beendet den exec-Befehl
Zum Testen kannst Du ja alles ab -exec noch weglassen, dann siehst Du, ob nur die gewünschten Verzeichnisse gelöscht werden würden.
find /volume1/Amaryllo/iSSa0bs1k -type d -name "20*" -maxdepth 1 -cmin +120 -exec rm -r {} \;
Was machen die Optionen:
-type d ... Nur Verzeichnisse prüfen, keine Dateien
-name "20*" ... Nur Verzeichnisse prüfen, deren Namen mit "20" beginnen. Dann wird nicht auch das @eadir-Verzeichnis gelöscht.
-maxdepth 1 ... Nur die erste Ebene durchsuchen, also das angegebene Rootverzeichnis
-cmin +120 ... Nur Verzeichnisse ausgeben, deren Status vor mehr als 120 Minuten geändert wurden. Die Zahl wirst Du noch anpassen müssen.
-exec ... Die Treffer nicht an die Konsole senden, sondern einen Befehl ausführen
rm -r ... Dateien und Verzeichnisse rekursiv löschen
{} ... Wird von find bei jedem Treffer durch den Verzeichnisnamen ersetzt
\; ... Beendet den exec-Befehl
Zum Testen kannst Du ja alles ab -exec noch weglassen, dann siehst Du, ob nur die gewünschten Verzeichnisse gelöscht werden würden.
- Ricki
- ToppiHolic
- Beiträge: 5339
- Registriert: Fr 9. Dez 2005, 23:06
- Receivertyp: 2xSky Q
MagentaTV MR601
2xUltimo4K 1 DVB-S2x FBC - Receiverfirmware: Alle aktuell
- Wohnort: Wetter/Hessen
- Kontaktdaten:
AW: Synology: Suche Script um alte Ordner mit Inhalt zu Löschen
Super, das klappt
.
Wenn ich jetzt die Zeit auf 3 Tage ändern möchte dann statt +120 also +2160? oder gibt es ein Tage Befehl?

Wenn ich jetzt die Zeit auf 3 Tage ändern möchte dann statt +120 also +2160? oder gibt es ein Tage Befehl?
cu
Ricki
smartEPGvu+ Wiki - Deutsch
smartEPGvu+ Wiki - English
SAT Anlage - Kathrein: CAS 75 mit UAS 584 LNB & EXR 1512 (Multischalter 5 auf 12), Astra 19.2°E
VU+ ULTIMO 4K DVB-S2x FBC+Samsung SSD870 QVO , 2 TB
VU+ ULTIMO 4K DVB-S2x FBC+Kingston SSDSUV400S, 480 GB
Skin: Vu_HD_1080P mit angepassten Skinparts - VTi 15.0.01
Plugins: smartEPGvu+ , Multi QuickButton, OpenWebif, AutocutVfd, GithubPluginUpdater, InfoBarTunerState, VTi Panel
Panasonic TX-55GZW1509; Sony UBP-X700, Apple TV 4K, Fire TV 4K, Harmony Elite, Denon AVR-X2300W, Synology 716+ (6TB)
Ricki
smartEPGvu+ Wiki - Deutsch
smartEPGvu+ Wiki - English
SAT Anlage - Kathrein: CAS 75 mit UAS 584 LNB & EXR 1512 (Multischalter 5 auf 12), Astra 19.2°E
VU+ ULTIMO 4K DVB-S2x FBC+Samsung SSD870 QVO , 2 TB
VU+ ULTIMO 4K DVB-S2x FBC+Kingston SSDSUV400S, 480 GB
Skin: Vu_HD_1080P mit angepassten Skinparts - VTi 15.0.01
Plugins: smartEPGvu+ , Multi QuickButton, OpenWebif, AutocutVfd, GithubPluginUpdater, InfoBarTunerState, VTi Panel
Panasonic TX-55GZW1509; Sony UBP-X700, Apple TV 4K, Fire TV 4K, Harmony Elite, Denon AVR-X2300W, Synology 716+ (6TB)
- FireBird
- Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
- Beiträge: 28527
- Registriert: Fr 9. Dez 2005, 09:59
- Receivertyp: SRP-2401CI+ TFIR
vu+ Duo 4k - Wohnort: Wien
AW: Synology: Suche Script um alte Ordner mit Inhalt zu Löschen
Der in ctime verwendete Parameter ist in Tagen. So weit ich das verstanden habe, arbeitet ctime nur mit ganzen Zahlen, was bedeutet, dass beispielsweise bei +1 erst nach 2 Tagen gelöscht.
- Ricki
- ToppiHolic
- Beiträge: 5339
- Registriert: Fr 9. Dez 2005, 23:06
- Receivertyp: 2xSky Q
MagentaTV MR601
2xUltimo4K 1 DVB-S2x FBC - Receiverfirmware: Alle aktuell
- Wohnort: Wetter/Hessen
- Kontaktdaten:
AW: Synology: Suche Script um alte Ordner mit Inhalt zu Löschen
OK, werde ich testen.
Ich vermute dass zu Anfang der Versuche durch den Zugriff über den Mac auf die Ordner der NAS, das Datum sich geändert hat und daher mtime +1 nichts zu tun hatte.
Ich nutze nun Dein Script und alles ist gut. Ich habe ctime +10 statt cmin +120 eingesetzt.
Herzlichen Dank für Deine Mühe und Hilfe. :d rinking:
Ich vermute dass zu Anfang der Versuche durch den Zugriff über den Mac auf die Ordner der NAS, das Datum sich geändert hat und daher mtime +1 nichts zu tun hatte.
Ich nutze nun Dein Script und alles ist gut. Ich habe ctime +10 statt cmin +120 eingesetzt.
Herzlichen Dank für Deine Mühe und Hilfe. :d rinking:

cu
Ricki
smartEPGvu+ Wiki - Deutsch
smartEPGvu+ Wiki - English
SAT Anlage - Kathrein: CAS 75 mit UAS 584 LNB & EXR 1512 (Multischalter 5 auf 12), Astra 19.2°E
VU+ ULTIMO 4K DVB-S2x FBC+Samsung SSD870 QVO , 2 TB
VU+ ULTIMO 4K DVB-S2x FBC+Kingston SSDSUV400S, 480 GB
Skin: Vu_HD_1080P mit angepassten Skinparts - VTi 15.0.01
Plugins: smartEPGvu+ , Multi QuickButton, OpenWebif, AutocutVfd, GithubPluginUpdater, InfoBarTunerState, VTi Panel
Panasonic TX-55GZW1509; Sony UBP-X700, Apple TV 4K, Fire TV 4K, Harmony Elite, Denon AVR-X2300W, Synology 716+ (6TB)
Ricki
smartEPGvu+ Wiki - Deutsch
smartEPGvu+ Wiki - English
SAT Anlage - Kathrein: CAS 75 mit UAS 584 LNB & EXR 1512 (Multischalter 5 auf 12), Astra 19.2°E
VU+ ULTIMO 4K DVB-S2x FBC+Samsung SSD870 QVO , 2 TB
VU+ ULTIMO 4K DVB-S2x FBC+Kingston SSDSUV400S, 480 GB
Skin: Vu_HD_1080P mit angepassten Skinparts - VTi 15.0.01
Plugins: smartEPGvu+ , Multi QuickButton, OpenWebif, AutocutVfd, GithubPluginUpdater, InfoBarTunerState, VTi Panel
Panasonic TX-55GZW1509; Sony UBP-X700, Apple TV 4K, Fire TV 4K, Harmony Elite, Denon AVR-X2300W, Synology 716+ (6TB)
- FireBird
- Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
- Beiträge: 28527
- Registriert: Fr 9. Dez 2005, 09:59
- Receivertyp: SRP-2401CI+ TFIR
vu+ Duo 4k - Wohnort: Wien
AW: Synology: Suche Script um alte Ordner mit Inhalt zu Löschen
Gern geschehen. 

Re: Synology: Suche Script um alte Ordner mit Inhalt zu Löschen
Hallo zusammen,
ich versuche Mal diesen alten Thread wiederzubeleben, vielleicht sind die Accounts hier ja noch aktiv:
Ich habe keine Ahnung von bash (etwas Python und C++ Kenntnisse, ich habe aber nicht das Gefühl dass das was hilft) und habe ein ähnliches Vorhaben wie Ricki. Ich möchte in einem Ordner in dem ich Backups ablege automatisiert alle Unterordner außer dem Neuesten löschen. Der Befehl ist bisher ähnlich, nur so werden aktuell noch alle Ordner gelöscht.
find /volume1/homes/pflaf/Backups/Hauptkatalog_2 -type d -maxdepth 1 -name "20*" -exec rm -r {} \;
Wenn ich das richtig sehe handelt es sich bei {} um eine Liste, die mir rm durchiteriert wird. Falls das der Fall ist, könnte man das vermutlich durch slicing lösen (die Unterordner sind nach YYYY-MM-DD HH.MM.SS benannt, sind also schon in der richtigen Reihenfolge). Wie kann ich da sinnvoll vorgehen? Alternativ könnte man eventuell mit 'find -cnewer' und einer if bedingung (so in die Richtung "rm if -cnewer !=0" nur, dass das in bash vermutlich anders aussieht) arbeiten, das scheint mir aber komplizierter zu sein, weil ich dann den Pfad zum neuesten angeben muss.
LG pflaf
ich versuche Mal diesen alten Thread wiederzubeleben, vielleicht sind die Accounts hier ja noch aktiv:
Ich habe keine Ahnung von bash (etwas Python und C++ Kenntnisse, ich habe aber nicht das Gefühl dass das was hilft) und habe ein ähnliches Vorhaben wie Ricki. Ich möchte in einem Ordner in dem ich Backups ablege automatisiert alle Unterordner außer dem Neuesten löschen. Der Befehl ist bisher ähnlich, nur so werden aktuell noch alle Ordner gelöscht.
find /volume1/homes/pflaf/Backups/Hauptkatalog_2 -type d -maxdepth 1 -name "20*" -exec rm -r {} \;
Wenn ich das richtig sehe handelt es sich bei {} um eine Liste, die mir rm durchiteriert wird. Falls das der Fall ist, könnte man das vermutlich durch slicing lösen (die Unterordner sind nach YYYY-MM-DD HH.MM.SS benannt, sind also schon in der richtigen Reihenfolge). Wie kann ich da sinnvoll vorgehen? Alternativ könnte man eventuell mit 'find -cnewer' und einer if bedingung (so in die Richtung "rm if -cnewer !=0" nur, dass das in bash vermutlich anders aussieht) arbeiten, das scheint mir aber komplizierter zu sein, weil ich dann den Pfad zum neuesten angeben muss.
LG pflaf
- FireBird
- Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
- Beiträge: 28527
- Registriert: Fr 9. Dez 2005, 09:59
- Receivertyp: SRP-2401CI+ TFIR
vu+ Duo 4k - Wohnort: Wien
Re: Synology: Suche Script um alte Ordner mit Inhalt zu Löschen
find -exec bewirkt, dass der Befehl dahinter pro Treffer ausgeführt wird. {} ist dabei nur ein Platzhalter für den Treffer und enthält keine Liste. Die Frage ist, ob die Zeitstempel brauchbar sind, so dass man find -mtime <Tage> oder find –mmin <Minuten> verwenden kann.
Willkommen an Board.
Willkommen an Board.

Re: Synology: Suche Script um alte Ordner mit Inhalt zu Löschen
Oh super, da hab ich Glück gehabt, danke für deine Antwort!
Ich verstehe, schade, das wäre eine schöne Lösung gewesen. Gibt es eine Möglichkeit auf die gefundenen Pfade zuzugreifen und dann iterativ die einzelnen Verzeichnisse zu löschen?
Die Zeitstempel sind leider nicht brauchbar, weil die Backups manuell und nur bei Bedarf durchgeführt werden. Wenn ich das Programm nicht nutze, werden keine Backups erstellt und ich laufe Gefahr, dass das NAS das aktuelle Backup löscht.
Ich verstehe, schade, das wäre eine schöne Lösung gewesen. Gibt es eine Möglichkeit auf die gefundenen Pfade zuzugreifen und dann iterativ die einzelnen Verzeichnisse zu löschen?
Die Zeitstempel sind leider nicht brauchbar, weil die Backups manuell und nur bei Bedarf durchgeführt werden. Wenn ich das Programm nicht nutze, werden keine Backups erstellt und ich laufe Gefahr, dass das NAS das aktuelle Backup löscht.
- FireBird
- Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
- Beiträge: 28527
- Registriert: Fr 9. Dez 2005, 09:59
- Receivertyp: SRP-2401CI+ TFIR
vu+ Duo 4k - Wohnort: Wien
Re: Synology: Suche Script um alte Ordner mit Inhalt zu Löschen
Vielleicht klappt die Geschichte?
ls gibt die Liste aller Verzeichnisse aus, sortiert sie aber umgekehrt, wodurch das jüngste Verzeichnis ganz oben stehen sollte. tail gibt die letzten 10 Zeilen aus. Mit der Option „-n +2“ gibt man vor, dass tail mit der zweiten Zeile beginnen soll.
Wenn das klappt muss man die Ausgabe noch in eine Löschschleife weiterleiten.
Hoffentlich ist danach nicht Deine Platte done. 
Code: Alles auswählen
ls -1r 20* | tail -n +2
Wenn das klappt muss man die Ausgabe noch in eine Löschschleife weiterleiten.
Code: Alles auswählen
| while read i ; do echo "deleting $i" ; rm -r "$i" ; done

Re: Synology: Suche Script um alte Ordner mit Inhalt zu Löschen
ich habs so zusammengebastelt, ich bin mir nicht ganz sicher ob das so gedacht war:
bekomme aber die Fehlermeldung
find: unknown predicate `-1r'
wenn ich '-1r' rausnehme, bekomme ich in der Ausgabe
find: `ls': No such file or directory
find: `20*': No such file or directory
/volume1/homes/pflaf/Backups/Hauptkatalog_2/1
/volume1/homes/pflaf/Backups/Hauptkatalog_2/3
/volume1/homes/pflaf/Backups/Hauptkatalog_2/4
/volume1/homes/pflaf/Backups/Hauptkatalog_2/5
/volume1/homes/pflaf/Backups/Hauptkatalog_2/6
/volume1/homes/pflaf/Backups/Hauptkatalog_2/7
/volume1/homes/pflaf/Backups/Hauptkatalog_2/8
/volume1/homes/pflaf/Backups/Hauptkatalog_2/9
/volume1/homes/pflaf/Backups/Hauptkatalog_2/10
/volume1/homes/pflaf/Backups/Hauptkatalog_2/2
/volume1/homes/pflaf/Backups/Hauptkatalog_2/2012
/volume1/homes/pflaf/Backups/Hauptkatalog_2/2019
ich habe in dem Verzeichnis ein paar Testordner angelegt, tatsächlich sind sie nicht "alphabetisch" sondern nach Erstellungszeit sortiert, der neueste ist ganz unten.
Das führt ja schon in die richtige Richtung.

Code: Alles auswählen
find /volume1/homes/pflaf/Backups/Hauptkatalog_2 ls -1r 20* | tail -n +2
find: unknown predicate `-1r'
wenn ich '-1r' rausnehme, bekomme ich in der Ausgabe
find: `ls': No such file or directory
find: `20*': No such file or directory
/volume1/homes/pflaf/Backups/Hauptkatalog_2/1
/volume1/homes/pflaf/Backups/Hauptkatalog_2/3
/volume1/homes/pflaf/Backups/Hauptkatalog_2/4
/volume1/homes/pflaf/Backups/Hauptkatalog_2/5
/volume1/homes/pflaf/Backups/Hauptkatalog_2/6
/volume1/homes/pflaf/Backups/Hauptkatalog_2/7
/volume1/homes/pflaf/Backups/Hauptkatalog_2/8
/volume1/homes/pflaf/Backups/Hauptkatalog_2/9
/volume1/homes/pflaf/Backups/Hauptkatalog_2/10
/volume1/homes/pflaf/Backups/Hauptkatalog_2/2
/volume1/homes/pflaf/Backups/Hauptkatalog_2/2012
/volume1/homes/pflaf/Backups/Hauptkatalog_2/2019
ich habe in dem Verzeichnis ein paar Testordner angelegt, tatsächlich sind sie nicht "alphabetisch" sondern nach Erstellungszeit sortiert, der neueste ist ganz unten.
Das führt ja schon in die richtige Richtung.
Hoffentlich ist danach nicht Deine Platte done.

- FireBird
- Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
- Beiträge: 28527
- Registriert: Fr 9. Dez 2005, 09:59
- Receivertyp: SRP-2401CI+ TFIR
vu+ Duo 4k - Wohnort: Wien
Re: Synology: Suche Script um alte Ordner mit Inhalt zu Löschen
Mein Lösungsansatz war ohne find, Du musst vorher im richtigen Verzeichnis stehen.