Synology-NAS: Verzeichnisse dauerhaft von nervigen temp-Dateien befreien

Loxone im Einsatz? Dann schau dir unseren LoxKurs an und profitiere von unserem Wissen!

Ein Synology-NAS ist praktisch. Es bietet Platz f√ľr Unmengen an Daten, seien es Videos, Fotos oder andere Dokumente. Beim flei√üigen Hin- und Herkopieren von Datein zwischen PC, Mac, Linux-Server und Synology NAS f√ľllen sich die Ordner aber nicht nur mit n√ľtzlichen Inhalten. Wie von Geisterhand wuchern in den Ordnern nach gewisser Zeit auch unn√∂tige Tempor√§rdateien, die zwar nicht sonderlich viel Platz brauchen, der √úbersichtlichkeit jedoch ma√ügeblich schaden. Hunderte Ordner sind dann schnell √ľberflutet mit Datenm√ľll, den es zu tilgen gilt. Es muss also eine halbwegs einfache, automatisierte L√∂sung her, m√∂chte man nicht jede einzelne temp-Datei h√§ndisch tilgen.

temp-Dateien auf einen Schlag tilgen (getestet mit DSM 4.2)

Eine relativ unbequeme aber dennoch einfache M√∂glichkeit alle unn√∂tigen Dateien zu l√∂schen, bietet ein „einfacher“ Terminal-Befehl. Dazu wird eine ssh-Verbindung zum Synology-NAS aufgebaut:

1. ssh-Login per Terminal

Damit der ssh-Login auf das Synology-NAS gelingt, muss vorher √ľber das DSM-Interface unter dem Men√ľpunkt „Systemsteuerung“ -> „Terminal“ der Haken bei „SSH-Dienst aktivieren“ gesetzt werden. Daraufhin erfolgt die ssh-Anmeldung z.B. √ľber die integrierte Terminal-App (MAC OS X) oder Putty (Windows):

ssh root@IP-ADRESSE-DES-SYNOLOGY-NAS

Die IP-Adresse des Synology-NAS kann im DSM-Interface unter Systemsteuerung – Netzwerk – Netzwerk Schnittstelle herausgefunden werden.

Wichtig ist der Login per „root“, das Passwort ist identisch mit dem des „admin“-Users.

2. L√∂sch-Befehl ausf√ľhren

Im zweiten Schritt wird der unten stehende Befehl per Copy&Paste in das Terminal-Fenster kopiert und mit der Enter-Taste bestätigt.

Hinweis: Wer an dieser Stelle einen Fehler macht, riskiert im schlimmsten Fall, daß alle auf dem NAS gespeicherten Daten gelöscht werden. Deshalb besondere Vorsicht walten lassen! Wer sich nicht sicher ist, was er da tut, sollte besser die Finger davon lassen.

find /volume1/ -depth \( -name '.@__thumb' -o -name '.DS_Store' -o -name '.AppleDouble' -o -name ':2e*' -o -name '~$!#~*' -o -name '.TemporaryItems' -o -name '.apdisk' \) -print0 | xargs -0r rm -rf

Der Befehl durchsucht dabei alle Ordner und Unterordner im Standardvolume (volume1) nach den folgenden Temporärdateien und löscht diese. Dieser Vorgang kann dabei eine gewisse Zeit in Anspruch nehmen.

.@__thumb
.DS_Store
.AppleDouble
:2e*
~$!#~*
.TemporaryItems
.apdisk
@eaDir (wurde entfernt, da die Photo Station-App darauf angewiesen ist)

Erweiterung des Lösch-Befehls

Diese Auswahl erhebt keinen Anspruch auf Vollst√§ndigkeit und kann nach Belieben erg√§nzt werden. Wer dies tut, muss sich aber im Klaren sein, was er/sie da anstellt. Im schlimmsten Fall kann mit einem falschen Befehl der gesamte Festplatteninhalt gel√∂scht werden. Jeder ist selbst daf√ľr verantwortlich, ich √ľbernheme keine Haftung f√ľr die falsche Anwendung.

Timergesteuertes Ausf√ľhren des L√∂sch-Befehls

Das Ganze lässt sich jetzt noch weiter automatisieren, so dass bspw. einmal wöchentlich alle unnötigen temp-Dateien gelöscht werden. Dazu habe ich den oben stehenden Lösch-Befehl in das Script deletetempfiles.sh gepackt. Mit nachfolgendem Befehl landet die Datei gleich im public-Folder (/volume1/public):

cd /volume1/public/; wget https://www.meintechblog.de/download/deletetempfiles.zip; unzip deletetempfiles.zip; rm deletetempfiles.zip

Alternativ die Datei einfach herunterladen, das zip-File entpacken und den Inhalt in den gew√ľnschten Ordner kopieren.

Im Anschluss kann im Synology-DSM unter „Systemsteuerung“ -> „Aufgabenplaner“ -> „Erstellen“ -> „Benutzer-definiertes Skript“ eine neue Aufgabe hinterlegt werden. Als Folder wird /volume1/public/deletetempfiles.sh eingetragen (siehe Screenshot links). Unter Zeitplan l√§sst sich dann konfigurieren, wann das Script ausgef√ľhrt werden soll. Je nach Anzahl der vom Script zu durchsuchenden Ordner kann die Abarbeitung schnell mehrere Minuten bis Stunden dauern. Man sollte deshalb den Zeitraum nicht zu klein w√§hlen.

@eaDir-Service dauerhaft deaktivieren

Das Synology-NAS erzeugt bei Zugriff per AFP automatisch Temp-Dateien des Typs „@eaDir“. Um dies von Vorneherein zu verhindern, f√ľhrt man nachfolgende Befehle aus:

Als Erstes muss der Dienst, der daf√ľr zust√§ndig ist die Thumbs zu erzeugen, gestoppt werden:

/usr/syno/bin/synomkthumb -stop

Daraufhin wird das Startscript gesichert, damit der Dienst später (sofern benötigt) wieder hergestellt werden kann:

tar -cvzf /volume1/public/backup_S77synomkthumbd.tar.gz /usr/syno/etc.defaults/rc.d/S77synomkthumbd.sh

Zum Schluss wird verhindert, dass der Dienst beim nächsten Neustart wieder gestartet wird:

rm /usr/syno/etc.defaults/rc.d/S77synomkthumbd.sh

.DS-Store dauerhaft deaktivieren (MAC)

Auch OSX sorgt standardm√§√üig daf√ľr, dass bei Netzwerkzugriffen auf das Synology-NAS laufend .DS-Store Dateien erzeugt werden. Dies l√§sst sich direkt mit dem folgenden Terminal-Befehl unterbinden (Der Befehl muss direkt in OSX ausgef√ľhrt werden. Wer noch auf dem Synology-NAS verbunden ist, kann sich mit dem Befehl „exit“ trennen.):

defaults write com.apple.desktopservices DSDontWriteNetworkStores true

Danach noch den Mac neustarten und auch dieses Problem ist ab sofort aus der Welt geschafft.

Aus meinem täglichen Leben

Die hier vorgestellte L√∂sung verrichtet bei mir bereits seit einiger Zeit treu seine Dienste und sorgt daf√ľr, dass unn√∂tiger Dateischrott automatisch gel√∂scht wird und meine Nerven bei der Suche nach gew√ľnschten Inhalten damit geschont bleiben. Ich lasse das oben beschriebene Script nur einmal w√∂chentlich laufen, was absolut ausreichend ist. Der Durchlauf dauert auf meinem DS1812 mit einer Unmenge an Ordnern und Dateien (1.000.000+) ca. eine Stunde. Wer noch weitere nervige temp-Dateien ausfindig machen kann, schreibt bitte einen Kommentar. Ich werde das Script dann entsprechend erweitern.

Affiliate-Links

[easyazon_image align=“none“ height=“110″ identifier=“B005NFVCTK“ locale=“DE“ src=“https://www.meintechblog.de/wordpress/wp-content/uploads/2015/06/31GRKfEAkL.SL1103.jpg“ tag=“meintechblog-130430-21″ width=“110″][easyazon_image align=“none“ height=“110″ identifier=“B002US9AYC“ locale=“DE“ src=“https://www.meintechblog.de/wordpress/wp-content/uploads/2015/06/41APkhab5eL.SL1104.jpg“ tag=“meintechblog-130430-21″ width=“110″][easyazon_image align=“none“ height=“110″ identifier=“B004RORMF6″ locale=“DE“ src=“https://www.meintechblog.de/wordpress/wp-content/uploads/2015/06/41Xsaw8Wd4L.SL1102.jpg“ tag=“meintechblog-130430-21″ width=“110″]

 

Loxone im Einsatz? Dann schau dir unseren LoxKurs an und profitiere von unserem Wissen!

Verpasse keine Inhalte mehr! Trage dich in den Newsletter ein und folge uns auf Facebook.

Was ist ein Affiliate-Link? Wenn du auf einen Affiliate-Link klickst und √ľber diesen Link einkaufst, bekomme ich vom betreffenden Online-Shop oder Anbieter eine Provision, was mich u.A. bei den laufenden Kosten den Blogs unterst√ľtzt. F√ľr dich ver√§ndert sich der Preis nicht.

Jörg

hat meintechblog.de ins Leben gerufen, um seine Technikbegeisterung und Erkenntnisse zu teilen. Er veröffentlicht regelmäßig Howtos in den Bereichen Smart Home und Home Entertainment. Mehr Infos

26 Gedanken zu „Synology-NAS: Verzeichnisse dauerhaft von nervigen temp-Dateien befreien“

  1. Hallo Jörg, super Anleitung, danke!

    Jedoch kommt bei mir die Fehlermeldung, dass der Pfad nicht gefunden werden kann, wenn ich diesen Teil ausf√ľhre: rm /usr/syno/etc.defaults/rc.d/S77synomkthumbd.sh

    Kann es sein, dass sich dieses File bei mir in einem anderen Pfad befindet?
    Dasselbe Problem habe ich, wenn ich dieses File mit „tar -cvzf…“ sicher m√∂chte.
    Danke und Gr√ľsse

    1. Ist m√∂glich. Um die Datei ausfindig zu machen, w√ľrde ich mich im Terminal schrittweise von Order zu Ordner hangeln. Dazu kann man die Tab-Taste nutzen (einfach und doppelt geklickt). Also z.B. /usr/syno/e eingeben und dann mit der Tab-Taste die Autovervollst√§ndigung probieren. Wenn es mehr als eine M√∂glichkeit gibt und keine Vervollst√§ndigung angezeigt werden, dann einfach die Tab-Taste doppelt klicken, dann werden alle m√∂glichen Alternativen angezeigt. So sollte man recht flott zum richtigen Pfad bzw. zur richtigen Datei kommen. Bitte mal testen und Bescheid geben, ob es geklappt hat.

  2. W√§re es m√∂glich das L√∂sch Script SO umzubauen da√ü es doch das „@eadir“ Unterverzeichnis l√∂scht, dies aber NICHT im „\photo“ Ordner macht?
    Ich habe leider NULL Ahnung von den Shell Befehlen bei Linux, ich mach da fast alles mit dem Midnight Commander.

  3. Hallo Jörg,

    danke f√ľr den Tipp. Seltsamerweise l√∂scht das Skript bei mir nur Dateien, aber keine Ordner wie .TemporaryItems. Muss ich da eine zus√§tzliche Option aufnehmen? Hier mein Skript erweitert um ein paar weitere Suchstings:

    find /volume1/ -depth \( -name ‚.@__thumb‘ -o -name ‚.DS_Store‘ -o -name ‚.AppleDouble‘ -o -name ‚:2e*‘ -o -name ‚~$!#~*‘ -o -name ‚.TemporaryItems‘ -o -name ‚.apdisk‘ -o -name ‚#recycle‘ -o -name ‚.localized‘ -o -name ‚.android_secure‘ -o -name ‚.fseventsd‘ -o -name ‚.Spotlight-V100‘ -o -name ‚.Trashes‘ -o -name ‚_Archived Items‘ -o -name ‚LOST.DIR‘ \) -exec rm -rf {} \;

    Gruß, Kai

    1. Hi Kai,
      mit der Option -type d lassen sich auch Ordner löschen. Leider bin ich kein Experte, was das angeht. Am besten erstmal in einer Testumgebung ausprobieren und erst dann auf das produktive System anwenden. Bei solchen delete-Befehlen sollte man wirklich wirklich aufpassen!

  4. Hallo,
    habe eben den terminal befehl ausgef√ľhrt(/usr/syno/bin/synomkthumb -stop) hat funktioniert. Dann wollte ich den f√ľr den Startskript ausf√ľhren tar -cvzf /volume1/public/backup_S77synomkthumbd.tar.gz /usr/syno/etc.defaults/rc.d/S77synomkthumbd.sh) da kam schon irgendeine fehlermeldung. hab dann den n√§chsten probiert zum abschluss, auch da gab es eine fehler. Im terminal am mac hab ich exit eingegeben und dann f√ľr macOS angegeben den dienst nicht jedesmal neu zu starten. So weit so gut.
    3 Stunden sp√§ter piept meine ds414 pl√∂tzlich und ich komm √ľber die normale ip nicht mehr drauf. im lan ist er unter einer .46 erreichbar und fordert mich dort auf die DSM Software neu zu installieren. Sind all meine daten nun weg, oder hat es nur die Software zerschossen? was kann ich tun?

    lg
    rainer

    1. Hallo Rainer,
      welche Fehlermeldung war es denn genau? Das wäre an dieser Stelle wichtig, um eine genauere Diagnose abgeben zu können, was schief gelaufen ist. Vielleicht haben sich die Systemdienste seit der im Artikel angesprochenen DSM-Version 4.2 (aktuell ist 5.x) etwas geändert. Kann das leider gerade nicht testen, da ich derzeitig nur ein QNAP im Einsatz habe.
      So oder so sollten die Befehle nicht bewirken, daß das System instabil wird oder gespeicherte Daten gelöscht werden. Ich habe die Befehle selbst nochmal auf meinem gerade brachliegenden Synology-System getestet, da hat alles einwandfrei funktioniert.
      Sofer du das Problem nicht bereits selbst in den Griff bekommen konntest, w√ľrde ich empfehlen direkt den Synology-Service zu kontaktieren und deren Support in Anspruch zu nehmen, damit du deine Daten retten kannst. Die Jungs sind in der Regel sehr nett und helfen schnell weiter (schon selbst erlebt).

      Gr√ľ√üe und viel Erfolg‚Ä®
      Jörg

  5. Also ganz so perfekt ist das jetzt nicht mit dem Suchen einer Datei. Von Ordner zu Ordner hangeln ist wohl f√ľr Jemanden, der ein NAS schon l√§nger betreibt, ein Marathon und Arbeit soll ja ein NAS nicht machen.

    Suchen lassen heisst es. Man kann unter Linux wie unter jedem anderem OS Dateien und Ordner finden lassen. Beim NAS nicht nur in der Ordnerstruktur der Festplatten.

    Als root angemeldet, in der Konsole bedarf (und darf es auch nicht geschrieben werden) es kein sudo, auf „normalen“ Rechnern schon, daher gebe ich den Befehl mal unverbindlich f√ľr alle in der einfachsten Form mit, welche jede kleine Distripution versteht, weil sie uralt ist.

    # sudo find / -name zusuchenderAusdruck wobei „/“ sag, man soll die Suche im Stammordner beginnen und sich dann durch die sesamten Ordner w√ľhlen. Man kann auch einen Pfad vorgeben. Beim Weglassen allerdings ist man im Homeordner von root also /root und Der ist … leer.

    Dabei ist es egal, ob man einen Ordner oder eine Datei sucht. In der Ausgabe wird nur der Pfad zum Ausdruck mit dem Ausdruck angegeben. Allerdings nicht, ob im Pfad noch ein Symlink steckt, oder das Ziel ein Ordner ist.
    Da man aber durch Markieren mit der linken Maustaste auch gleichzeitig alles Markierte kopiert, kann man schnell mittels einfachem
    # ls -lah oder bei den NAS mittels
    # ls -c /Pfad/gesuchterAusdruck
    und dem Klick der mittleren Maustaste schnell herausfinden, ob es sich um einen Ordner handelt. Wird ein Pfad zu einem Ordner aufgerufen, sieht man dessen Inhalt. Ist entgegen die kopierte und zur Listung abgefragte Struktur am Ende eine Datei, wird nur der Pfad mit der Datei wie hinter ls -c ausgegeben. Diese kann man dann direkt mit cat /Pfad/zur/Datei/Dateiname sich anzeigen lassen. √úber die L√§nge des Inhaltes der Datei m√ľssen wir uns keine Sorgen machen, der Monitor ist ja nach oben „offen“
    Jetzt noch heraus zu finden, wie man cat dazu bewegt, seitenweise anzuzeigen, oder sonst etwas zu tun findet man unter
    man cat.

    Ob type -d nun Ordner löscht, keine Ahnung. Gelöscht wird gern mit
    # rm /Pfad/zum/zu/löschenden/Objekt
    rm ist es allerdings auch egal, was „er“ da l√∂schen soll. Nur wenn es ein Ordner sein soll, will rm noch ein -R f√ľr die Ordnerinhalte und ggf. Unterordner
    # rm -R /Pfad/zum/zu/löschenden/Objekt

    Die Rechte sollte man allerdings schon haben… . Aber auf dem NAS meldet man sich ja nur noch als root an – wobei jeder andere administrative User auch geht, jedoch… nicht mit gleichen Rechten wie User root.

    Die notwendige Vorsicht beim L√∂schen muss ich nicht erw√§hnen. Von Haus aus kann ein SynoNAS gel√∂schte Dateien wieder herstellen, aber in undelete gibt es daf√ľr direkt nicht. Bei der Aktivierung von Samba (cifs) kann man einen Papierkorb aktivieren. Da werden die Dateien halt nur da rein verschoben, wenn man sie l√∂scht. Das gilt dann jedoch nur f√ľr Dateien/Ordner der Volumen (HDDs) Ansonsten gilt bei NAS wie bei einer SSD ohne Papierkorb – wenn weg, dann weg, bzw. der Aufwand ist h√∂her, als ein Text hier lang sein sollte.

    Habe fertig.

    theMario

  6. Bekomme leider bei dem Löschbefehl die Fehlermeldung
    -sh: syntax error: unexpected „(“

    Kann es sein das was geändert wurde am find Befehl? Habe den Befehl genauso wie angegeben in die bash kopiert.

    Danke und Gruß
    Hans

    1. Vor die Klammerrn muss je ein Backslash. Der steht da höchstwahrscheinlich auch, wird aber vom Blog-Backend fehlinterpretiert und gehört im Blog-Quellcode verdoppelt.

    2. Hi,
      ich weiss leider nicht, ob bzw. warum sich in der Zwischenzeit ein Fehler eingeschlichen hat. Habe je einen Backslash vor die Klammern gepackt. Falls noch etwas angepasst werden muss, lasst es mich bitte wissen.

      Danke und Gr√ľ√üe
      Jörg

  7. Denke da hat es noch so das ein oder andere durcheinander gew√ľrfelt wie mir scheint (leider).

    find: -exec CMD must end by ‚;

    Evtl. kann man das ganze ja als TXT Datei hinterlegen, nicht das sich da noch der ein oder andere Fehler sonst einschleicht. (wäre nett)

    Danke und Gruß
    Hans

    1. Ich bin nicht mehr so wirklich in der Materie drin.. Sofern noch Fehler im Code sind, bitte kurz per Kommentar mitteilen, dann ändere ich das im Blogpost ab.

      Gr√ľ√üe
      Jörg

    2. Hi,

      hatte selbigen Fehler. Liegt daran, dass das ; mit einem Backslash escaped werden muss. Hier der Befehl, der bei mir dann tat:

      find /volume1/ -depth \( -name ‚.@__thumb‘ -o -name ‚.DS_Store‘ -o -name ‚.AppleDouble‘ -o -name ‚:2e*‘ -o -name ‚~$!#~*‘ -o -name ‚.TemporaryItems‘ -o -name ‚.apdisk‘ \) -exec rm -rf {} \;

      Sandos

    3. Hi,
      hatte selbigen Fehler. Liegt daran das das ; mit einem Backslash escaped werden muss. Hier der Befehl, der bei mir dann tat:
      find /volume1/ -depth \( -name ‚.@__thumb‘ -o -name ‚.DS_Store‘ -o -name ‚.AppleDouble‘ -o -name ‚:2e*‘ -o -name ‚~$!#~*‘ -o -name ‚.TemporaryItems‘
      -o -name ‚.apdisk‘ \) -exec rm -rf {} \;
      Sandos

      UPDATE: sehe gerade, in dem deletetempfiles.sh script ist der backslash sogar drin. Fehlt lediglich oben in dem code-fenster.

    1. Danke f√ľr den Hinweis. Kannst du bitte nochmal den gesamten Code einf√ľgen, damit ich das im Blogpost ab√§ndern kann? Verstehe deine Erl√§uterung mit ‚Ķ leider nicht so ganz.

      Gr√ľ√üe und danke schon mal
      Jörg

    2. Das Auslassungszeichen „‚Ķ“ stand einfach f√ľr den zu startenden Befehl. Dachte, das w√§re offensichtlich.

      In diesem Fall:

      find /volume1/ -depth \( -name ‚.@__thumb‘ -o -name ‚.DS_Store‘ -o -name ‚.AppleDouble‘ -o -name ‚:2e*‘ -o -name ‚~$!#~*‘ -o -name ‚.TemporaryItems‘ -o -name ‚.apdisk‘ \) -print0 | xargs -0r rm -rf

      Siehe dazu auch die entsprechenden Manpages.

  8. Hallo,

    danke f√ľr die Tipps!

    Der L√∂sch-Befehl scheint unter DSM 6.0 weiterhin zu funktionieren, allerdings muss man sich nun nach der Anmeldung als admin (√ľber SSH) mit dem Kommando „sudo -i“ (ohne „“) die n√∂tigen root-Rechte sichern.

    Gruß

    PS: Weiß jemand wie man die Photo Station dazu bringt Bilder am iPad (via DS Photo) im Original zu laden, also ohne Qualitätsverlust?

  9. Hallo,

    bin gerade beim Suchen auch auf deine Seite gestossen.
    Funktioniert das ganze auch noch bei der Aktuellen DSM 6.1…. ???

    Und falls ja, k√∂nntest du mir Sagen wie ich die Suche auf die komplette Festplatte ausweite? w√ľrd halt gerne auch direkt die Sytem Log Files usw die zu alt sind suchen und l√∂schen lassen.

    Vielen Dank

    Gruss

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert