random copy script gesucht

  • ich suche ein script, dass mir "random" fotos aus diversen unterverzeichnissen in ein zielverzeichnis kopiert.
    es soll aus den verzeichnissen 2003 bis 2012 nach zufall 50 fotos in ein anderes verzeichnis kopieren.
    nach 24 stunden soll das zielverzeichnis wieder geleert werden und neue 50 fotos eingesetzt werden.

    hintergrund:
    das squeezebox-radio hat ein optionales plugin, um fotos anzuzeigen.
    da das teil aber nur wenig speicher hat (und es die bilder vor-cached), will ich ein script auf dem NAS für diesen zweck einrichten.
    vorbestimmte anzahl von bildern nach zufall in ein zielverzeichnis kopieren.
    das löschen könnte dann auch ein zweites script übernehmen.

    Perl oder bash-script, da das NAS ja Linux-basierend ist.

  • Hi Don

    ich hab mir mal ein Copyscript geschrieben. Das ist jetzt nicht 100% das was du suchst aber das wär ein guter Grundstein zum umbauen.


  • Ich habe mal schnell was zusammengebaut. Sollte selbsterklärend sein.
    Während ich dabei war ist mir eingefallen, dass es höchstwahrscheinlich auch mit symlinks funktioniert, ich habe dafür mal eine Option eingebaut.
    Sei bitte vorsichtig mit CLEAN_OUTPUT_FOLDER, der löscht ggf. rekursiv alles in OUTPUT_FOLDER!

    Du kannst als INPUT_FOLDER so viele Verzeichnisse wie du möchtest angeben, alle werden REKURSIV durchsucht.
    Bis auf die Symlink-Sache sollte es auf Win/Linux/OSX funktionieren.

    Problematisch könnte sein, dass die Dateinamen im OUTPUT_FOLDER kollidieren könnten, wenn das für dich in Frage kommt sag noch mal kurz bescheid, dann baue ich noch extra was ein.

    Viel spaß damit,
    sphere

  • Gerad auf das NAS geschoben. Dann via putty das Ding angestuppst:

    Code
    echo ./pic.sh


    Aber es passiert noch nichts.
    Ich denke, dass ich da sehr wahrscheinlich noch Fehler in der Pfadangabe gemacht habe.
    Wobei ich jetzt den absoluten Pfad und auch den relativen Pfad probiert habe.

    Code
    INPUT_FOLDERS = (
        '/share/HDA_DATA/xbmc/picture/2011',
    )
    OUTPUT_FOLDER = '/share/HDA_DATA/xbmc/picture/x'  # Will be created if not exist
    Code
    INPUT_FOLDERS = (
        '/2011',
    )
    OUTPUT_FOLDER = '/x'  # Will be created if not exist
    NUM_RANDOM_FILES = 5

    Wie gesagt, es wird wohl an den Pfadangaben liegen. Muss ich mir später noch mal anschauen.

  • Wenn der Pfad mit einem Slash beginnt muss er absolut sein (ich würde absolute Pfade empfehlen).
    Ich habe es so implementiert, dass er ungültige Pfade ohne Meldung ignoriert. Er sollte die aber in jedem Fall Eine Zeile ala "Found 0 Files." ausgeben.

    Hier eine Version mit Debug-Ausgabe, du kannst wenn es funktioniert einfach jede print-Zeile auskommentieren.

    EDIT:
    Ich hoffe du hast das jetzt nur hier im Forum falsch gemacht, aber:

    Zitat

    echo ./pic.sh


    Macht nichts außer "./pic.sh" auszugeben :D

    Versuch es mal mit:

    Zitat

    python ./pic.sh


    Wobei das ".sh" zwar den Interpreter nicht beeinflusst (es also per shebang/Magic-Line von Python interpertiert wird), aber dennoch falsch ist ;)
    Mach mal ein "pic.py" raus...

  • Erstellen JA, löschen Nein.
    Bzw es kam eine Fehlermeldung, das die Einträge schon vorhanden sind. Löschen war/ist aber aktiviert.

    Dummerweise habe ich jetzt ein anderes Problem, dass nichts mit deinem Script zu tun hat.
    Der Bildbetrachter beruht ausschließlich auf einer Favoriten-LISTE. Es wird also eine *.lst Datei erstellt.

    Vom Ablauf sieht das so aus: Man fügt einen Ordner mit Pfadangabe in das Addon hinzu und muss danach dann eben diese Ordner als "Favorit" speichern.
    Das löst dann den Befehl aus, um eine Liste zu erstellen. Genau genommen, werden die Einträge zur Liste hinzugefügt.
    All das muss man manuell machen.

    Aber das muss ich mir im [definition='1','0']log[/definition] mal genauer anschauen.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!