Synology: Suche Script um alte Ordner mit Inhalt zu Löschen

Hier geht´s um TV, Zubehör wie Soundanlagen, Sat- , Übertragungs- bzw. Kabeltechnik und um alles,
was irgendwie zum Thema Technik passt.
Benutzeravatar
FireBird
Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
Beiträge: 28745
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

#21

Beitrag von FireBird » Mo 16. Okt 2017, 22:42

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.

Benutzeravatar
Ricki
ToppiHolic
ToppiHolic
Beiträge: 5626
Registriert: Fr 9. Dez 2005, 23:06
Receivertyp: 2xSky Q
MagentaTV MR601
2xUltimo4K DVB-S2x FBC
Receiverfirmware: Alle aktuell
Wohnort: Wetter/Hessen
Kontaktdaten:

AW: Synology: Suche Script um alte Ordner mit Inhalt zu Löschen

#22

Beitrag von Ricki » Di 17. Okt 2017, 09:14

Super, das klappt :hello: .
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+ & SmartFilervu+ Wiki

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.02
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)

Benutzeravatar
FireBird
Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
Beiträge: 28745
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

#23

Beitrag von FireBird » Di 17. Okt 2017, 09:27

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.

Benutzeravatar
Ricki
ToppiHolic
ToppiHolic
Beiträge: 5626
Registriert: Fr 9. Dez 2005, 23:06
Receivertyp: 2xSky Q
MagentaTV MR601
2xUltimo4K DVB-S2x FBC
Receiverfirmware: Alle aktuell
Wohnort: Wetter/Hessen
Kontaktdaten:

AW: Synology: Suche Script um alte Ordner mit Inhalt zu Löschen

#24

Beitrag von Ricki » Di 17. Okt 2017, 09:49

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: :thanks:
cu
Ricki


SmartEPGvu+ & SmartFilervu+ Wiki

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.02
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)

Benutzeravatar
FireBird
Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
Beiträge: 28745
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

#25

Beitrag von FireBird » Di 17. Okt 2017, 09:56

Gern geschehen. :)

pflaf
Neuling
Neuling
Beiträge: 6
Registriert: So 22. Jan 2023, 01:37

Re: Synology: Suche Script um alte Ordner mit Inhalt zu Löschen

#26

Beitrag von pflaf » So 22. Jan 2023, 01:53

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

Benutzeravatar
FireBird
Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
Beiträge: 28745
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

#27

Beitrag von FireBird » So 22. Jan 2023, 14:33

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. :)

pflaf
Neuling
Neuling
Beiträge: 6
Registriert: So 22. Jan 2023, 01:37

Re: Synology: Suche Script um alte Ordner mit Inhalt zu Löschen

#28

Beitrag von pflaf » So 22. Jan 2023, 15:10

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.

Benutzeravatar
FireBird
Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
Beiträge: 28745
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

#29

Beitrag von FireBird » So 22. Jan 2023, 16:05

Vielleicht klappt die Geschichte?

Code: Alles auswählen

ls -1r 20* | tail -n +2 
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.

Code: Alles auswählen

 | while read i ; do echo "deleting $i" ; rm -r  "$i" ; done
Hoffentlich ist danach nicht Deine Platte done. :und_weg:

pflaf
Neuling
Neuling
Beiträge: 6
Registriert: So 22. Jan 2023, 01:37

Re: Synology: Suche Script um alte Ordner mit Inhalt zu Löschen

#30

Beitrag von pflaf » Di 24. Jan 2023, 11:53

ich habs so zusammengebastelt, ich bin mir nicht ganz sicher ob das so gedacht war:

Code: Alles auswählen

find /volume1/homes/pflaf/Backups/Hauptkatalog_2  ls -1r 20* | tail -n +2
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.
Hoffentlich ist danach nicht Deine Platte done. :und_weg:
:cry:

Benutzeravatar
FireBird
Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
Beiträge: 28745
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

#31

Beitrag von FireBird » Di 24. Jan 2023, 12:03

Mein Lösungsansatz war ohne find, Du musst vorher im richtigen Verzeichnis stehen.

pflaf
Neuling
Neuling
Beiträge: 6
Registriert: So 22. Jan 2023, 01:37

Re: Synology: Suche Script um alte Ordner mit Inhalt zu Löschen

#32

Beitrag von pflaf » Sa 11. Feb 2023, 12:08

Sorry dass ich mich nicht mehr gemeldet habe, hatte einiges um die Ohren... Jetzt hatte ich endlich wieder Zeit zum rumprobieren. Ich habe versucht mit cd in das Verzeichnis zu kommen, und den Code testweise auf

Code: Alles auswählen

cd /volume1/homes/pflaf/Backups/Hauptkatalog_2 | tail
reduziert.
Damit habe ich ja eigentlich nur die Einschränkungen rausgenommen, dass das Verzeichnis mit "20" beginnen soll und dass das erste Verzeichnis übersprungen wird. Leider bekomme ich so eine komplett leere Ausgabe, obwohl der Verzeichnis nicht leer ist? Mit

Code: Alles auswählen

cd /volume1/homes/pflaf/Backups/Hauptkatalog_2 | ls
bekomme ich die Einträge im home Verzeichnis meines Adminaccounts von dem aus ich die Scripte laufen lasse. Ist das ein Problem wenn ich das von einem anderen Account aus mache? Sollte doch eigentlich nicht problematisch sein?
Ah und ohne den Trennstrich | meckert die Ausgabe dass cd nicht mehr Argumente nimmt.

Ab diesem Punkt herrscht bei mir jetzt wieder Ratlosigkeit...

pflaf
Neuling
Neuling
Beiträge: 6
Registriert: So 22. Jan 2023, 01:37

Re: Synology: Suche Script um alte Ordner mit Inhalt zu Löschen

#33

Beitrag von pflaf » Sa 11. Feb 2023, 12:26

Okay ich wollte eigentlich nur was blödes ausprobieren, und habe es mal mit

Code: Alles auswählen

ls /volume1/homes/pflaf/Backups/Hauptkatalog_2
versucht, da kam die ganze Liste. Mit

Code: Alles auswählen

ls /volume1/homes/pflaf/Backups/Hauptkatalog_2 -1r 20* | tail -n +2 
habe ich aber keinen weiteren Erfolg, vor der Liste steht jetzt noch
ls: cannot access '20*': No such file or directory
gleiches wenn ich -name davor schreibe, nur dass die Einträge danach jetzt nicht mehr untereinander stehen sondern durch Kommas getrennt in einer Zeile. Vielleicht ein anderer Datentyp oder so. Außerdem tauchen jetzt (die darübergelegenen Verzeichnisse?) "." und ".." mit auf.
mit

Code: Alles auswählen

ls /volume1/homes/pflaf/Backups/Hauptkatalog_2 | tail -n +2 
kriege ich die Liste wieder anstandslos ausgegeben, Elemente werden allerdings nicht übersprungen.
Jetzt hab ichs noch mit

Code: Alles auswählen

ls /volume1/homes/pflaf/Backups/Hauptkatalog_2 | -1r | tail -n +2
versucht, da wird der Befehl -1r gar nicht erkannt...

Benutzeravatar
FireBird
Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
Beiträge: 28745
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

#34

Beitrag von FireBird » So 12. Feb 2023, 20:31

Das Pipe-Zeichen | leitet die Ausgabe eines Befehls zum nächsten weiter. Da Change Directory (cd) das Verzeichnis wechselt, aber nichts ausgibt, ist es korrekt, dass beim ersten Befehl im Beitrag #32 nichts ausgegeben wird. Im zweiten Befehl ergibt das | dann keinen Sinn, da Du eigentlich 2 Befehle trennen möchtest und das macht man mit dem Strichpunkt.

Code: Alles auswählen

cd /volume1/homes/pflaf/Backups/Hauptkatalog_2 ; ls
In Beitrag #33 bist Du schon näher dran. Entweder muss der Suchbegriff beim Pfad stehen,

Code: Alles auswählen

ls /volume1/homes/pflaf/Backups/Hauptkatalog_2/20* -1r | tail -n +2
 
oder Du setzt das cd davor und trennst cd und ls mittels ;

Code: Alles auswählen

cd /volume1/homes/pflaf/Backups/Hauptkatalog_2; ls 20* -1r | tail -n +2 
Die letzte Zeile funktioniert deshalb nicht, weil „-1r“ eine Option von ls sein sollte, durch das Pipe aber zum eigenständigen Befehl wird, den es jedoch nicht gibt.

Benutzeravatar
FireBird
Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
Beiträge: 28745
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

#35

Beitrag von FireBird » So 12. Feb 2023, 20:43

Übrigens schöne Grüße vom ChatGPT :D
pflaf_ChatGPT.png
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
Ricki
ToppiHolic
ToppiHolic
Beiträge: 5626
Registriert: Fr 9. Dez 2005, 23:06
Receivertyp: 2xSky Q
MagentaTV MR601
2xUltimo4K DVB-S2x FBC
Receiverfirmware: Alle aktuell
Wohnort: Wetter/Hessen
Kontaktdaten:

Re: Synology: Suche Script um alte Ordner mit Inhalt zu Löschen

#36

Beitrag von Ricki » So 12. Feb 2023, 22:00

irre dieses ChatGPT :shock:
cu
Ricki


SmartEPGvu+ & SmartFilervu+ Wiki

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.02
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)

pflaf
Neuling
Neuling
Beiträge: 6
Registriert: So 22. Jan 2023, 01:37

Re: Synology: Suche Script um alte Ordner mit Inhalt zu Löschen

#37

Beitrag von pflaf » So 12. Feb 2023, 23:45

Heureka, danke dir!
FireBird hat geschrieben:
So 12. Feb 2023, 20:43
Übrigens schöne Grüße vom ChatGPT :D

pflaf_ChatGPT.png
Okay da hätte ich echt drauf kommen können^^
Ich habs jetzt aber nach deinem Vorschlag von weiter oben gelöst, also ohne if Bedingung, das finde ich eleganter:

Code: Alles auswählen

cd /volume1/homes/pflaf/Backups/Hauptkatalog; ls 20* -1r -d | tail -n +2 | while read i ; do echo "deleting $i" ; rm -r "$i" ; done
ich hab noch -d eingefügt (bei chatgpt erfragt nachdem maxdepth erfolglos war:u:) und was soll ich sagen: ES FUNKTIONIERT!
Jetzt habe ich sogar einen Code den ich verstehe :D (Über die Lösung von chatGPT muss ich dann Mal noch in Ruhe nachdenken...)

Danke nochmal, jetzt kann ich wieder ruhig schlafen!:) :thanks:

Antworten

Zurück zu „Technikforum“