Dateien automatisch vom Ordner x in y ab einer bestimmten Größe verschieben?

  • Hallo,


    Ich habe mal eine frage die mich beschäftigt, und zwar lade ich über meinen Qnap TS-251+ über Jdownloader Dateien die landen in einen Ordner und mir kam da die Idee kann man nicht mit einen Script und einen Crontab die Dateien Automatisch verschieben.


    Ich habe mir das so vorgestellt, Datei x ab einer Größe x soll in das Verzeichnis y geschoben werden und das soll alle ca. 5min durchlaufen damit man die Dateien nicht immer selber hin und her schicken muss.


    Kann mir bei sowas einer helfen oder gibt es eine APP die sowas kann oder geht es vielleicht mit den qnap Bordmitteln?


    jede hilfe oder Idee ist Herzlich Willkommen


    Gruß Frank

  • Also Grundsätzlich sollte das per Script möglich sein, auch wenn es aktuell zu spät ist, als dass ich dir mal kurz mal ebend ein Script runter tippen könnte. Sehr lange dürfte das Script jedenfalls nicht sein, vielleicht ein 5 Zeiler oder so. Ich denke mit awk kann man die Filegröße des jeweiligen files rausfiltern und dann braucht es eigentlich nur noch eine if-Anweisung mit wenn file größer als x mb dann mv quelle ziel.


    Bleibt die Frage ob awk auf dem Nas überhaupt verfügbar ist.


    Aber es könnte auch mit den Sicherungsmöglichkeiten funktionieren. Wäre zwar etwas Zweckentremdet könnte aber gehen, wenn du nur in eine Richtung sicherst und im Ziel nicht automatisch löschen lässt wenn die Daten in der Quelle fehlen.

  • Aber es könnte auch mit den Sicherungsmöglichkeiten funktionieren. Wäre zwar etwas Zweckentremdet könnte aber gehen, wenn du nur in eine Richtung sicherst und im Ziel nicht automatisch löschen lässt wenn die Daten in der Quelle fehlen.

    Das Verschieben bekommst du mit den Sicherungsmöglichkeiten nicht realisiert. Wir hatten das Thema schon mal und dort wurde dann auch eine Lösung auf Script-Basis erarbeitet: Ordner und Dateien nächtlich von einer Freigabe auf eine andere Freigabe des gleichen NAS verschieben.



    Gruß Dirk

  • Naja es wäre kein verschieben sondern eher ein kopieren und löschen. Wobei man letzteres auch per Script machen müsste.

  • kopieren und löschen.

    Kopieren und löschen ist aber eine heikle Angelegenheit, da du das Löschen ja davon abhängig machen musst, dass das Kopieren zuvor erfolgreich war. Sonst droht Datenverlust. In Kombination mit den QTS Sicherungsmöglichkeiten sind die Prüfungsbedingungen vermutlich nicht so einfach zu erfassen.

  • Man könnte über den Inhalt beider Verzeichnisse mit md5 prüfen ob die Daten vollständig angekommen sind. Zugegeben das wäre auch ziemlich umständlich und müsste auch per script gemacht werden. Also unterm Strich nichts gewonnen.


    Aber ich tendiere ja sowieso zum Script. :)

  • @angelluck wärst du vielleicht so nett mir ein script zu coden? also ich bräuchte das so Dateien aus Ordner Downloads mit der Dateigröße 300mb bis 2500mb in ordner serien verschieben und ab Dateigröße 2501mb und Ordner Filme Verschieben. hoffe du weißt was ich meine

  • danke das du mich wenigstens verstehst ich wüsste auch leider nicht wie ich das anpassen soll also wie die Funktionen sind mit kleine als usw.

  • Code
    find -type f -size +300m -size -2500m -exec mv /share/MD0_DATA/SourceFolder/* /share/MD0_DATA/TargetFolder/

    würde das so hinhauen?

  • Das m bei den size Angaben muss aufjedenfall großgeschrieben werden und dann könnte, dass so tatsächlich schon funktionieren.


    Was auf jedenfall schneller wäre als meine Lösung. :)


    ---


    Ich habe es gerade mal direkt auf dem NAS getestet, da scheinen nicht alle Optionen zur verfügung zu stehen. Unter der Linux Station geht es aber. Also wenigstens der erste Teil des Scripts. Den zweiten habe ich nicht getestet.

    2 Mal editiert, zuletzt von angelluck ()

  • Ja per ssh. Aber wie gesagt, es scheint über das direkt Nas nicht zu funktionieren. Aber über die Linuxstation kannst du das auch laufen lassen und musst kaum was ändern.

  • Denn könnte ich es also auch über die Win8.1 vm die laufen habe auch als batch Datei ausführen die denn auf das Netzwerklaufwerk zugreift und denn eine Aufgabe einstellen das er die batch denn alle 5min ausführt

  • Für ein Windows Script brauchst du dann garantiert andere Befehle.


    Aber ja grundsätzlich wird das sicher auch irgendwie über Windows möglich sein, frag mich da aber nicht nach den befehlen oder irgendwelchen Programmen dafür.


    Schneller wird es aber wahrscheinlich dennoch über die LinuxStation funktionieren, a weil es ein Container ist, und mehr oder weniger direkter Zugriff auf die Dateien möglich ist und b, beim verschieben nur die Zeiger auf die Dateien umgehängt werden. Während Windows das ganze eher kopieren und anschließend löschen wird. Was deutlich länger dauert, als so einen Zeiger umzuhängen.

    2 Mal editiert, zuletzt von angelluck ()

  • also müsste ich über die Linux station ein Linux als vm laufen lassen und denn darüber die befehle steuern.
    also die vm nur zum verschieben laufen lassen.

  • Du brauchst keine VM in der LinuxStation laufen lassen nur die LinuxStation installieren und meinetwegen nach deinen bedürfnissen einrichten. Dann eben einen cronjob mit dem Befehl einrichten. Wobei es sein kann, dass du für den cronjob den Befehl noch mal anpassen musst, häufig funktioniert, dass nicht eins zu eins im Cronjob.


    Aber ja wenn du die LinuxStation sonst nicht brauchst würde die nur dafür laufen. Wobei es natürlich einen Nachteil gäbe, die HDStation kann nicht zeitgleich betrieben werden. Alternativ könnte man einen Linux Container in der Container Station installieren.


    Aber ich versteh natürlich deine bedenken wenn du parallel noch eine Windows VM am laufen hast.