SHELL find Problem

  • Hi,
    ich möchte auf dem QNAP ein paar Bereinigungen laufen lassen.
    Gerne über find.


    Auf den Linux-Kisten läuft das so:

    Code
    find . -name ".DS_Store" -exec echo {} \;


    Auf dem QNAP kommt:

    Einmal editiert, zuletzt von GorillaBD () aus folgendem Grund: Code Block hinzugefügt!

  • Jup, die QNAPs verwenden Busybox und da haben die gängigen Linux
    binaries leider wesentlich weniger Parameter zur Verfügung.


    Ich mounte die zu bereinigende Freigabe auf meinem MacBook oder
    in einer Linux-VM, sollte der Fall eintreten, dass die passenden Befehle
    auch auf OSX nicht verfügbar sind und setze die Befehle dort ab.

  • Hi,
    ist aber als täglich laufender Dienst eher etwas unpraktisch.


    Ich fummel mir vielleicht was mit ner for Schleife. Da gibts dann halt das Problem mit den Leerzeichen im Pfadnamen ...


    Mal schauen.


    Trotzdem Danke. Dacht schon ich hätte die Bestätigung für meine Blödheit.


    Grüße


    Heinz

  • Hi,
    habs nun so gemacht ...

    Code
    ipkg-opt install findutils


    dann ...


    Code
    findutils-find /share/allgemein/ -name '.Apple*' -print0 | xargs -0 rm -rf {} \;

    Einmal editiert, zuletzt von GorillaBD () aus folgendem Grund: Code Block hinzugefügt! Siehe Forenregeln.

  • aha :mrgreen:
    Für den Spaß habe ich noch ein Ticket bei Apple offen, da ich gerne die Vorteile von SMB2
    ohne diesen ganzen Metadatenschrott hätte. Fällt man bei OSX10.9 auf den alten
    SMB-Standard zurück werden diese auch nicht mehr geschrieben...

  • Was ich noch vergessen hatte:
    Probier doch mal, die Ressource Forks mit in die veto-Files der Sambakonfig zu packen:

    Code
    # cp -p /etc/config/smb.conf /etc/config/smb.conf.original
    # vi /etc/config/smb.conf
    ...
    veto files ... /._*/.DS_Store/


    Danach übers init-Script den Samba neu starten oder einfach den ganzen NAS.
    Nachdem lt. smb.conf die Veto Files gelöscht werden, sollte man also die Forks los sein.
    Ist natürlich auch keine optimale Lösung, aber Apple ist halt so flexibel wie ein Doppel-T Stahlträger :roll:

    3 Mal editiert, zuletzt von Pretender ()

  • Zitat von "Pretender"

    Probier doch mal, die Ressource Forks mit in die veto-Files der Sambakonfig zu packen:


    Warum so kompliziert? Und warum vor allen Dingen im Flash?
    Die vom System geladene smb.conf befindet sich in /etc/config/smb.conf, wobei config ein Link auf /mnt/HDA_ROOT/.config ist.
    Ausserdem solltest du, wenn du sowas schon hier schreibst, es auch vollständig tun. Nicht jeder der darüber stolpert weiss, dass der Flash auch wieder umounted werden muss.

    Code
    umount /tmp/config
  • Wieso kompliziert? Bevor ich auf jedem Client eine Löschroutine schreibe, nutze ich lieber das, was das System bereits mitbringt.
    Du hast natürlich mit dem Verzeichnis recht, das werde ich mir nie merken, daß der Flash bei der Sambaconfig nicht notwendig ist.


    Ach ja, damit es wirklich vollständig ist:

    Code
    # cksum /etc/config/smb.conf
    # vi /etc/config/smb.conf.cksum    # Erste Zahl in diese Datei schreiben
    # /etc/init.d/smb.sh restart


    Der Spaß scheint jedoch mit der 4.1.0 nicht mehr zu funktionieren. Die hinzugefügten veto files werden mit dem Restart wieder gelöscht.

  • Zitat von "Pretender"

    Wieso kompliziert?


    Das bezog sich auf das Mounten des Flash statt die smb.conf im config-Verzeichnis zu editieren.


    Zitat von "Pretender"

    Der Spaß scheint jedoch mit der 4.1.0 nicht mehr zu funktionieren.


    Versuchs mal mit der /etc/config/veto_file.conf Datei.

  • Danke für den Tipp, hatte die Datei zwischenzeitlich selbst gefunden (immer dieser sportliche Ergeiz :mrgreen:)
    Dann machen wir das Ganze doch so:

    Code
    # mount -t ext2 /dev/sdx6 /tmp/config# vi /tmp/config/autostart.sh


    Dann folgende Zeilen in die autorun.sh einfügen

    Code
    /bin/sed -i -e 's/.*veto files.*/&._*\/.DS_Store\//' /etc/default_config/veto_file.conf/etc/init.d/smb.sh restart


    Mit :wq abspeichern und flash wieder unmounten

    Code
    # umount /tmp/config


    Damit ist der ganze Spaß wieder rebootfest