Script-Kiddies vor die 6. :-)

  • Hi


    ich hatte vor einiger Zeit schon mal danach gefragt, aber keine für mich befriedigende Antwort bekommen.


    Jetzt steht der Import einer Platte an, die mit Aufnahmen gefüllt ist. Die Aufnahmen sollen (das ist jedenfalls meine Idee) so behandelt werden, als wenn der vdr die aufnimmt. Also


    -

    • index.vdr, info.vdr ins Verzeichnis /video.00
    • xxx.vdr in ein Verzeichnis, welches entsprechend der Aufnahmeverteilungsstrategie "dran wäre" (derzeit das mit dem meisten freien Platz)
    • symlink zu xxx.vdr ins /video.00


    da die Verzeichnisstruktur der Platte, die da kommt, nicht 100%ig meiner lokalen entspricht, wäre die Angabe des Zielverzeichnisses notwendig
    Beispiel: auf der Platte gibts ein Verzeichnis "Hope and Faith" mit 22 Aufnahmen. Bei mir lokal muß das nach "Serien~USA~Hope and Faith"
    oder
    "Airspeed" muß nach "Film~Kids~Airspeed"


    anyone ?

  • Hallo,


    ich glaube, ich verstehe die Frage gar nicht. "import"... Also Aufnahmen einer fremden Platte auf die eingene kopieren, dann kommt die fremde weg?


    Die Verzeichnisstruktur stimmt nicht... Wie soll ein Script entscheiden, ob eine Serie aus USA oder Ungarn kommt? Oder ob das überhaupt eine Serie ist? Ich habe auch mehrere Einträge in einem Oder, der z.B. "Steven Seagal" oder "Tarantino" heißt. Könnte auch eine Serie sein...


    Wenn das eine einmalige Sache ist, ist das kopieren per Hand vielleicht einfacher.

    VDR1: Silverstone SST-LC14S-M, M3N78, AMD Athlon64 5600+, 2G Ram, 2x SATELCO EasyWatch PCI DVB-C, NVIDIA GT218 [GeForce 210] (rev a2), YaVDR 0.6.1
    VDR2: Antec Mini-ITX Case "ISK300-65", AT3IONT-I Deluxe, 2GRam, 32G SSD, Atric Einschalter, YaVDR 0.6.1
    VDR4: Antec Fusion Remote, GA-M68MT-D3, EN210 Silent/DI/512MD2 LP, SATELCO EasyWatch PCI DVB-C, YavDR 0.5

  • Zitat

    Original von iso
    Hallo,


    ich glaube, ich verstehe die Frage gar nicht. "import"... Also Aufnahmen einer fremden Platte auf die eingene kopieren, dann kommt die fremde weg?


    genau.


    Zitat

    Original von iso
    Die Verzeichnisstruktur stimmt nicht... Wie soll ein Script entscheiden, ob eine Serie aus USA oder Ungarn kommt? Oder ob das überhaupt eine Serie ist? Ich habe auch mehrere Einträge in einem Oder, der z.B. "Steven Seagal" oder "Tarantino" heißt. Könnte auch eine Serie sein...


    Wenn das eine einmalige Sache ist, ist das kopieren per Hand vielleicht einfacher.


    es könnte öfter vorkommen ...


    Das Script soll es nicht entscheiden. ich dachte an ein Script, welches ich in einem Verz. auf der zu importierenden Platte anwerfe. Dieses fragt danach, wohin der Inhalt des Verz. denn gehen soll, und kopiert entsprechend.


    also ich steh auf der fremden Platte im Verz. "/Hope_and_Faith/" und starte. das Script fragt nach nem Verzeichnis, ich gebe "/video.00/Serien/Usa" ein. Das script legt, falls noch nicht vorhanden, das Verz. "/video.00/Serien/Usa/Hope_and_Faith" an, ermittelt dann, auf welcher meiner Aufnahmeplatten genügen Platz für den Inhalt von "fremdePlatte/Hope_and_Faith" ist, kopiert die xxx.vdr - Dateien da hin, legt in "/video.00/Serien/Usa/Hope_and_Faith" die passenden Verz. an und erstellt dort die Links.

  • Nach reiflicher Überlegung...


    Wenn Du die fremde Platte in Dein System einbindest, hast Du z.B.:


    sda1: boot
    sda2: zeug
    sda3: video.00
    sdb1: video.01
    sdc1: video.02
    sdd1: fremd


    Dann müsste das Script 1. herausfinden: auf welcher physik befinde ich mich grad, 2. welche physik kommt als Ziel in Frage, 3. wie ist der genaue Pfad auf jeder Zielphysik, der für Aufnahmen benutzt werden kann, 4. wie ist die Auslastung der physik -> nehme die mit dem geringsten Füllstand, wenn der Rest für die Daten im aktuellen Verzeichnis ausreicht.



    Wenn das mindestens 1x die Woche vorkommt, mache ich mir mehr Gedanken (schon, weil ich über Deinen Server tauschen kann). Wenn nicht...


    PS: willst Du nur einige Aufnahmen der fremden Platte, oder prinzipiell alle?

    VDR1: Silverstone SST-LC14S-M, M3N78, AMD Athlon64 5600+, 2G Ram, 2x SATELCO EasyWatch PCI DVB-C, NVIDIA GT218 [GeForce 210] (rev a2), YaVDR 0.6.1
    VDR2: Antec Mini-ITX Case "ISK300-65", AT3IONT-I Deluxe, 2GRam, 32G SSD, Atric Einschalter, YaVDR 0.6.1
    VDR4: Antec Fusion Remote, GA-M68MT-D3, EN210 Silent/DI/512MD2 LP, SATELCO EasyWatch PCI DVB-C, YavDR 0.5

    Einmal editiert, zuletzt von iso ()


  • warum? ich habe im Midnight Commander in dieses Verzeichnis gewechselt. Ach so, die Platte ist natürlich nach /mnt/fremde gemountet.

    Zitat


    2. welche physik kommt als Ziel in Frage, 3. wie ist der genaue Pfad auf jeder Zielphysik, der für Aufnahmen benutzt werden kann,


    ich denke, das kann durch manuelle Eingabe erledigt werden.


    also revidiere ich meine "Anforderung":


    ich gebe nicht "/video.00/Serien/Usa" als Ziel ein, sondern "/video.04/Serien/Usa", weil ich weiß, daß da genügend Platz ist. Das script muß dann "nur" auf /video.00 entsprechend Verzeichnisse und Links (nach /video.04) anlegen und die index.vdr, info.vdr da hin packen...




    Zitat


    4. wie ist die Auslastung der physik -> nehme die mit dem geringsten Füllstand, wenn der Rest für die Daten im aktuellen Verzeichnis ausreicht.


    Das hat sich durch 3. erledigt... :)


    Zitat


    Wenn das mindestens 1x die Woche vorkommt, mache ich mir mehr Gedanken (schon, weil ich über Deinen Server tauschen kann). Wenn nicht...


    PS: willst Du nur einige Aufnahmen der fremden Platte, oder prinzipiell alle?


    naja, einmal die Woche vlt. nicht, aber derzeit - meine Empfangssituation ist beschissen, wie ich an anderer Stelle schon beschrieben habe. Und jemand aus dem Forum war so nett mir seinen vdr als Ersatz anzubieten. Die 500er Platte ist jetzt, nach knapp 2 Monaten, voll...


    und ja - prinzipiell sollen alle Aufnahmen von der fremden Platte in mein System ...

  • Also... auch wenn das jetzt doof klingt...


    im Moment hört sich das für mich an, als wäre "cp -a" der richtige Kandidat für Dich, ohne script drumherum. Da Du mittlerweile soweit bist, alle benötigten Informationen selbst zur Verfügung zu stellen, und gar nicht erwartest, dass das Script alles alleine regelt:


    1. In das fremde Videoverzeichnis wechseln
    2. cp -a Hope_and_Faith/ /[Ziel]/Serie/


    man cp:


    Code
    -a, --archive               Genau wie -dpR.
    ...
    -d, --no-dereference    nie symbolischen Verknüpfungen folgen.
    -p, --preserve              Datei-Attribute wenn möglich erhalten.
    -R, --recursive              Rekursives Kopieren von Verzeichnissen.

    VDR1: Silverstone SST-LC14S-M, M3N78, AMD Athlon64 5600+, 2G Ram, 2x SATELCO EasyWatch PCI DVB-C, NVIDIA GT218 [GeForce 210] (rev a2), YaVDR 0.6.1
    VDR2: Antec Mini-ITX Case "ISK300-65", AT3IONT-I Deluxe, 2GRam, 32G SSD, Atric Einschalter, YaVDR 0.6.1
    VDR4: Antec Fusion Remote, GA-M68MT-D3, EN210 Silent/DI/512MD2 LP, SATELCO EasyWatch PCI DVB-C, YavDR 0.5

  • mhmmja -



    nach nem cp hab ich


    auf /video.04/Serien/Usa/Hope_and_Faith/Folge1/2010-08-16.21.07.50.99.rec/001.vdr


    aber


    /video.00/Serien/Usa/Hope_and_Faith/Folge1/2010-08-16.21.07.50.99.rec/001.vdr


    als _Symlink_ ist dann doch nicht vorhanden.... und je nachdem, wie mein Ersatz-Vdr eingerichtet ist, könnten das - grade bei Filmen - ja schnell 20 Links sein, die ich dann händisch anlegen müsset ...


    ... und index.vdr, info.vdr liegen ja dann auch auf /video.04 ...


    wir sprechen hier aktuell über ~300 Aufnahmen ...

  • Also... Das fehlte mir bis jetzt. Mein VDR arbeitet auch mit mehreren Platten, allerdings sind diese mit LVM in Reihe geschaltet.


    Deine Umgebung sieht also so aus:


    - VDR greift auf /video.00 zu
    - in /vidoe.00 gibt es Verzeichnisse, die symlinks zu Dateien in (z.B.) /vido.04 enthalten


    Wenn das richtig ist, stellen sich mir folgende Fragen:


    1. Warum übergibst Du dem VDR beim start nicht mehrere video-verzeichnisse?
    2. Wie kommen da überhaupt symlinks hin? Um nach /video.04 zu schreiben, muss der VDR das Verzeichnis doch kennen... Wenn er das tut, kann er nicht nur dahin schreiben, sondern natürlich auch lesen.


    Entschuldige die vielen Fragen, aber bevor ich was schreibe, muss ich verstehen, was eigentlich los ist...



    PS: das cp -a kopiert natürlich das ganze Verzeichnis, ersetzt also die symlinks. Es ist also auf dem Ziel alles vorhanden, was Du brauchst. Das geht glaube ich auch im MC, nach F5 kommt ein Dialog mit Abfrage. Allerdings dauert das kopieren natürlich ein paar Minuten, ein Symlink ist da schneller.

    VDR1: Silverstone SST-LC14S-M, M3N78, AMD Athlon64 5600+, 2G Ram, 2x SATELCO EasyWatch PCI DVB-C, NVIDIA GT218 [GeForce 210] (rev a2), YaVDR 0.6.1
    VDR2: Antec Mini-ITX Case "ISK300-65", AT3IONT-I Deluxe, 2GRam, 32G SSD, Atric Einschalter, YaVDR 0.6.1
    VDR4: Antec Fusion Remote, GA-M68MT-D3, EN210 Silent/DI/512MD2 LP, SATELCO EasyWatch PCI DVB-C, YavDR 0.5

    Einmal editiert, zuletzt von iso ()

  • Sag mal Sigi, hatte ich dir diesbezüglich nicht schon mal das Script aus Gen2VDR empfohlen?
    Das legt dir die Links an. War das nichts?


    Gruß
    Martin

    Hat mein Neffe abgestaubt:


    Gen2VDR auf Asus M2A-VM/Sempron LE-1100 mit TT-FF und Skystar2 in Thermaltake "Mozart"


    Aktuell: WIRD ERGÄNZT

  • iso:


    Das ist das ganz normale Verhalten von VDR... Wenn es mehrere Videoverzeichnisse gibt, werden in video.00 immer die indexdateien und symlinks gespeichert, die tatsächlichen Daten verteilen sich dann jedoch je nach freiem Speicherplatz auf video.01-xx.


    Beim lesen braucht der VDR also immer NUR video.00, der Rest erledigt sich über Symlinks...


    Beim Schreiben also entsprechend Aufnahmen + index etc. in video.xx speichern, danach index etc. nach video.00 verschieben und symlinks auf die Daten setzen.


    Hardware: Antec Fusion Remote Black, Asus P5N7A-VM, E5200, Mystique SaTiX-S2 Dual V2, Stereo-Atmo
    TV: Samsung UE32B6000, BenQ W1070
    Software: yaVDR


    3 Mal editiert, zuletzt von Robsta ()


  • der vdr ist halt intelligent :) Danke, Klaus !


    wenn Du dem vdr als Videoverzeichnis eines vorgibst, das am Ende numerisch ist, und es in der selben Verzeichnisebene weiter Verzeichnisse gibt, die - außer im numerischen Teil - identisch benannt sind, dann nutzt vdr die alle, solange der numerische Teil fortlaufen ist ...


    das passiert bei mir schon seit 7 Jahren so, angefangen mit dem guten alten LinVdr...


    findet der vdr so eine Struktur, geht er folgndermaßen vor:


    1. anlegen der notwendigen Verzeichnise auf /video.00
    2. prüfen, welches Verzeichnis (bei mir halt /video.00 bis /video.21) den meisten freien Platz bietet.
    3. anlegen der 001.vdr in dem in 2. gefundenen Verzeichnis
    3. erstellen eines Symlinks zu der in 3. angelegten Datei im in 1. angelegten Verzeichnis


    Zitat


    2. Wie kommen da überhaupt symlinks hin? Um nach /video.04 zu schreiben, muss der VDR das Verzeichnis doch kennen... Wenn er das tut, kann er nicht nur dahin schreiben, sondern natürlich auch lesen.


    siehe oben.

    Zitat


    Entschuldige die vielen Fragen, aber bevor ich was schreibe, muss ich verstehen, was eigentlich los ist...



    PS: das cp -a kopiert natürlich das ganze Verzeichnis, ersetzt also die symlinks. Es ist also auf dem Ziel alles vorhanden, was Du brauchst. Das geht glaube ich auch im MC, nach F5 kommt ein Dialog mit Abfrage. Allerdings dauert das kopieren natürlich ein paar Minuten, ein Symlink ist da schneller.


    yepp. und genau das hilft mir ja nicht. ich werde die zu importierenden Dateien zum überwiegenden Teil nach /video.21 schieben, den Rest wohl auf /video.08 und /video.12. Dann muß ich durch alle "neuen" Verzeichnisse durch und die entspreche nden Symlinks in /video.00 anlegen - und das würde ich halt gerne automatisieren....



    maro1969:


    ja, aber ehrlich gesagt hat mir as nix gebracht. Ich verstehe zu wenig vom Scripten, um das auseinanderzuklamüsern ....

  • Mensch dann sach doch was, ich helf dir doch!!


    Würde dir folgendes helfen:


    1. Du verschiebst händisch deine Aufnahme-Ordner dahin wo du sie haben willst.


    2. Ich stricke das Script so um, daß du es mit 2 Parametern aufrufst: a) der übergeordnete Ordner, in dem diese Aufnahmen liegen, b) der übergeordnete Ordner auf video.00, in dem die Links angelegt werden sollen


    3. Rest macht das Script


    Ist das ein Vorschlag?


    Gruß
    Martin

    Hat mein Neffe abgestaubt:


    Gen2VDR auf Asus M2A-VM/Sempron LE-1100 mit TT-FF und Skystar2 in Thermaltake "Mozart"


    Aktuell: WIRD ERGÄNZT

  • Dann macht mal. Wenn das alles nix gibt, bau ich mal ein altes perl-script um.

    VDR1: Silverstone SST-LC14S-M, M3N78, AMD Athlon64 5600+, 2G Ram, 2x SATELCO EasyWatch PCI DVB-C, NVIDIA GT218 [GeForce 210] (rev a2), YaVDR 0.6.1
    VDR2: Antec Mini-ITX Case "ISK300-65", AT3IONT-I Deluxe, 2GRam, 32G SSD, Atric Einschalter, YaVDR 0.6.1
    VDR4: Antec Fusion Remote, GA-M68MT-D3, EN210 Silent/DI/512MD2 LP, SATELCO EasyWatch PCI DVB-C, YavDR 0.5

  • So, ich hab da mal ein Skript.
    Ist ziemlich quick and dirty, aber Sigi sagt, es tut was es soll. Wenn's noch jemand brauchen kann, kann er's ja noch ein wenig aufpolieren.


    Wie immer: KEINE GEWÄHR!!



    Gruß
    Martin

    Hat mein Neffe abgestaubt:


    Gen2VDR auf Asus M2A-VM/Sempron LE-1100 mit TT-FF und Skystar2 in Thermaltake "Mozart"


    Aktuell: WIRD ERGÄNZT

Jetzt mitmachen!

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