Scriptprogrammierer vor ! :-)

  • Schau Dir mal meine zweite Zeile an, da sind die Slashes, die Du vermisst.


    ARK

    VDR
    ASUS A7N8X-X, AMD 2600+, 2 GB, 320 GB HD, Hauppauge DVB-S 1.3, Hauppauge Nova-S-Plus, Funktastatur
    Debian 4.0/Etch-Kernel 2.6.18-5-486
    c't-VDR 6.1 mit e-tobi 1.6.0 (neu gepatched ohne sortrecordings), acpi, vdradmin-am, burn, osdteletext, ffnetdev, audiorecorder, infosatepg, ...
    Client
    dbox2 (Sagem 2xI_C) mit Neutrino-Derivat

  • danke. nun läuft es durch .... und liefert mir 9740 "verdächtig" dateien. da hab ich ja was zu tun ...


    was mir so auf anhieb auffällt ist, da verschobene aufnahmen (ob per Hand oder per ExtRecMenu) hier angezeigt werden. z.B. /video.01/Film/Peter_Pan/.....
    Die Aufnahme wurde von mir nachträglich mit EtxrecMenu nach /Film/00 Kids/ verschoben. Dabei wurde offensichtlich (und logischerweise) nur das Verz. auf video.00 verschoben, während alle Symlinks blieben wie sie waren ... na, hab ich keine Arbeit, mach ich mir welche .-)

  • Da bei mir gerade ein Umbau meiner Video-Verzeichnisse an stand (ich wollte video0 auf eine extra Partition meiner System-Platte legen) und ich dafür eh ein Script basteln musste, hab ich das zum Anlass genommen und das Ganze dann etwas universeller gestaltet.


    Das Script basiert auf knebbs Ansatz ist aber deutlich aufgebohrt und kann die viele Fehler, wie verschobene Aufnahmen, selbst beheben.


    Obwohl ich es an meinen Video-Verzeichnissen erfolgreich eingesetzt habe (Index,... von video0 sichern, Struktur mit neuem video0 neu aufbauen, video1 und 2 wieder säubern und auf video0 verschobene Aufnahmen auf video1 und 2 anpassen ...) ist es dennoch nicht vollständig getestet und die Anwendung geschieht auf eigene Gefahr!


    Ungetestete Funktionen (so viele sind aber das gar nicht mehr) sind sicherheitshalber noch auskommentiert und geben eine Entsprechende Meldung aus. Ausserdem muss jede Aktion, die etwas Verändert bestätigt werden (das lässt sich bei Bedarf aber einfach auskommentieren).

    Dateien

    Gruss
    SHF


  • hi SHF !


    ich hab heute erstmals Dein Script real laufen lassenund hab da ein problem:


    Code
    ********************************************************************************
    Kein passender Link gefunden bei /video.01/Film/!_Nach_Namen/Paul_Newman/Der_Unbeugsame/2008-10-23.20.10.50.50.rec/013.vdr
    ********************************************************************************
    Link-Datei erstellen?
    ln: creating symbolic link `/video.00/Film/!_Nach_Namen/Paul_Newman/Der_Unbeugsame/2008-10-23.20.10.50.50.rec/013.vdr': File exists
    Fehler !!!


    das liegt wohl daran, daß es in /video.00 .... einen Link gibt, der aber in dem Fall nicht nach /video.01 ... zeigt.


    eigentlich dachte ich, der falsche Link würde durch den richtigen ersetzt - das machts aber nicht ...


    was mache ich, damit das gemacht wird ??

  • Zitat

    das liegt wohl daran, daß es in /video.00 .... einen Link gibt, der aber in dem Fall nicht nach /video.01 ... zeigt.

    Der Link ist tot?
    Der Link sollte beim Überprüfen von /video0 beseitigt werden, das wird aber erst nach den anderen Videodirs bearbeitet.
    (Das schöner abzufangen hätte deutlich mehr Arbeit gemacht.)


    Zitat

    was mache ich, damit das gemacht wird ??

    Nach einem zweiten Durchlauf sollte es eigentlich erledigt sein.

    Gruss
    SHF


  • Zitat

    na dann lass ichs die Nacht über laufen

    Wieviele TB hast du denn?
    Bei mir was das in etwa 20min erledigt.


    Zitat

    und hoffe, daß dann nach dem 2. Durchlauf die Links wieder richtig sind :)

    Da drücke ich die Daumen, bei mir ist hat es zumindestens geklappt.

    Gruss
    SHF


  • Zitat

    Originally posted by sigiberlin
    ln: creating symbolic link `/video.00/Film/!_Nach_Namen/Paul_Newman/Der_Unbeugsame/2008-10-23.20.10.50.50.rec/013.vdr': File exists
    [...]
    eigentlich dachte ich, der falsche Link würde durch den richtigen ersetzt - das machts aber nicht ...
    [...]
    was mache ich, damit das gemacht wird ??


    "ln -s" durch "ln -sf" ersetzen? (nach Aktenlage)

  • Hallo SHF!


    noch ne Kleinigkeit ist mir aufgefallen..


    wenn das Script Aufnahmedateien verschiebt, kommt es u.U. dazu, daß ein Verzeichnis leer ist. In dem fall wird angeboten, das leere Verzeichnis zu löschen. Dabei kommts bei mir zu der meldung "Fehler: /video.02 ist kein Verzeichnis"


    was nicht stimmt, meine /video.01 bis /video.xx sind Verzeichnisse, die als Mountpoint für die per nfs eingebundenen Platten im Server dienen ...

  • Zitat

    Original von sigiberlin
    bei mir sinds 8 TB ...

    Das erklärt warum es dauert ;).


    Zitat

    wenn das Script Aufnahmedateien verschiebt, kommt es u.U. dazu, daß ein Verzeichnis leer ist. In dem fall wird angeboten, das leere Verzeichnis zu löschen. Dabei kommts bei mir zu der meldung "Fehler: /video.02 ist kein Verzeichnis"

    Merkwürdig, /video.02 sollte eigentlich nicht leer sein oder?
    Ausserdem fehlt da das Verzeichnis der Aufnahme, sehr merkwürdig :schiel.


    Bleiben denn leere Verzeichnisse auf den Platten oder werden die korrekt gelöscht?


    Zitat

    was nicht stimmt, meine /video.01 bis /video.xx sind Verzeichnisse, die als Mountpoint für die per nfs eingebundenen Platten im Server dienen ...

    Meine Video-Verzeichnisse sind nur Symlinks, da ging es auch.

    Gruss
    SHF


  • die leeren Verzeichnisse verbleiben wo sie sind ...
    leider kommt die Meldung vom Linux und wird daher beim Aufruf des Scriptes mit Umleitung der Ausgabe in ne Datei nicht mitgeschrieben ...



    andere Frage, die sich durch das Verschieben ergibt:


    ich hatte meine Aufnahmen relativ simpel strukturiert. z.B. gibts /video.00/Film/A, /video.00/Film/B etc. Aufnahmen hab ich dann nach dem Anschauen per mv von /video.00/Film ins entsprechende Unterverz. geschoben - dabei wurde natürlich die Dateien auf /video.01 etc nicht verschoben.
    Gibts ein Script, welches
    - die Files im /video.00 auf Wunsch in ein anderes Verzeichns verschiebt
    - die passenden Verzeichnisse in /video.01 - /video.xx entsprechend auch verschiebt
    - die Links entsprechend anpasst, falls erforderlich


    ?



    Gibts weiterhin ein Script, welches


    - unter /video.00 nach Aufnahmen sucht, die keine index.vdr haben, und bei diesen gleich genindex anstößt
    - nach Aufnahmen sucht, bei denen keine 001.vdr vorhanden ist
    - nach Aufnahmen sucht, bei denen die vorhandenen 00x.vdr-Dateien nicht fortlaufend sind


    ??

  • Zitat

    die leeren Verzeichnisse verbleiben wo sie sind ...
    leider kommt die Meldung vom Linux und wird daher beim Aufruf des Scriptes mit Umleitung der Ausgabe in ne Datei nicht mitgeschrieben ...

    Da scheint wohl generell was schief zu laufen :(.
    Ich bin jetzt nicht sicher, ob das an den NFS Mounts hängen kann. Kann sein, dass da einige der Abfragen so nicht funktionieren. Ich hab es bislang nur Lokal laufen lassen und da hat es, wie gesagt funktioniert.


    Zitat

    ich hatte meine Aufnahmen relativ simpel strukturiert. z.B. gibts /video.00/Film/A, /video.00/Film/B etc. Aufnahmen hab ich dann nach dem Anschauen per mv von /video.00/Film ins entsprechende Unterverz. geschoben - dabei wurde natürlich die Dateien auf /video.01 etc nicht verschoben.
    Gibts ein Script, welches
    - die Files im /video.00 auf Wunsch in ein anderes Verzeichns verschiebt
    - die passenden Verzeichnisse in /video.01 - /video.xx entsprechend auch verschiebt
    - die Links entsprechend anpasst, falls erforderlich

    Das erledigt mein Skript, hat zumindestens bei mir geklappt.


    Zitat

    Gibts weiterhin ein Script, welches


    - unter /video.00 nach Aufnahmen sucht, die keine index.vdr haben, und bei diesen gleich genindex anstößt

    Wird überprüft, allerdings gibt es bislang nur eine Warnung.


    Zitat

    - nach Aufnahmen sucht, bei denen keine 001.vdr vorhanden ist

    Wird auch geprüft.


    Zitat

    - nach Aufnahmen sucht, bei denen die vorhandenen 00x.vdr-Dateien nicht fortlaufend sind

    Da weiss ich gerade nicht mehr ob das drin ist, müsste mal nach schauen.

    Gruss
    SHF


  • Zitat

    Original von SHF


    Das erledigt mein Skript, hat zumindestens bei mir geklappt.


    ja, richtig.
    Dein Script ist für den Fall, das mal was passiert ist - nen Plattencrash etc.. Was ich meine ist: ich habe eine Aufnahme gemacht und möchte diese nun in ein anderes Verzeichnis verschieben. Bislang hab ich eben einfach ein mv gemacht - was sich aber logischerweise nur auf /video.00 auswirkt, während die weiteren 14 Aufnahmeverzeichnisse (auf dem Fileserver) nicht angefasst werden. Das führt nun wieder beim Einsatz Deines Scriptes dazu, daß die Aufnahme letztendlich auch im /video.00 wieder am ursprünglichen Ort liegt ...


    Zitat

    Original von SHF

    Wird überprüft, allerdings gibt es bislang nur eine Warnung.


    Wird auch geprüft.


    ja. mir wäre es lieber, erstmal nur dieses zu prüfen - und ggfls halt genindex gleich zu machen ...

    Zitat

    Original von SHF

    Da weiss ich gerade nicht mehr ob das drin ist, müsste mal nach schauen.


    nein macht es nicht. Die Folge ist, daß ich jetzzt ne Menge Aufnahmen habe, bei denen die 001.vdr vorhanden ist, aber z.B. die 002.vdr nicht, weil die eben auf der abgekackten Platte lag ... Solche Aufnahmen sind ja nicht mehr zu gebrauchen und könnten - nach Mitteilung, damit man sie ggfls. vormerken kann - gelöscht werden ...

  • Zitat

    Original von sigiberlin
    ... Das führt nun wieder beim Einsatz Deines Scriptes dazu, daß die Aufnahme letztendlich auch im /video.00 wieder am ursprünglichen Ort liegt ...

    Das ist so nicht im Sinne des Erfinders.
    Das Feature hatte ich am Anfang mal getestet und da hat es richtig funktioniert.
    Danach hab ich noch einiges ergänzt und optimiert (am Anfang war es noch viel langsamer). Es kann eigentlich nur sein, dass sich da bei der Optimierung ein Fehler eingeschlichen hat.


    Zitat

    ja. mir wäre es lieber, erstmal nur dieses zu prüfen - und ggfls halt genindex gleich zu machen ...

    Dazu muss nur die Warnung durch den Aufruf für genindex ersetzt werden.
    Damit habe ich aber noch keine Erfahrungen und ich hab es, glaube ich, auch gar nicht drauf.


    Zitat

    nein macht es nicht. Die Folge ist, daß ich jetzzt ne Menge Aufnahmen habe, bei denen die 001.vdr vorhanden ist, aber z.B. die 002.vdr nicht, weil die eben auf der abgekackten Platte lag ... Solche Aufnahmen sind ja nicht mehr zu gebrauchen und könnten - nach Mitteilung, damit man sie ggfls. vormerken kann - gelöscht werden ...

    Dann werde ich mir das auch noch ansehen, kann sein, dass ich damals daran nicht gedacht habe.


    Btw.: eigentlich ist es ziemlich bekloppt eine Aufnahme auf mehrere Platten zu verteilen, da man dadurch ja praktisch alle verliert, wenn nur eine Platte ausfällt :(.
    Am besten währe es dem VDR das abzugewöhnen, doch dazu steige ich da auch nicht genug durch.

    Gruss
    SHF


  • sigiberlin:
    Auf ein Neues, ich hatte jetzt endlich etwas Zeit mir die Sache nochmal anzusehen, da ist das folgende raus gekommen:


    • Verschieben der Aufnahmen: Funktioniert wie es soll.
    • Löschen leerer Verzeichnisse auf "video0": Repariert
      (Die nachgerüstete Abfrage auf Nullbyte-001.vdrs war der Übeltäter ;).)
    • Aufruf für genindex (muss im Pfad sein) hinzugefügt.
      Bitte testen, ich hab es nicht drauf.
    • Abfrage ob [0-9][0-9][0-9].vdr vollständig: Hinzugefügt.
      Bislang wird nur erkannt, ob eine Datei in der Mitte fehlt!
      Wenn jemand eine Idee hat wie man überprüfen kann ob am Ende was fehlt, dann her damit!
    • Das Skript hatte Probleme mit Leerzeichen in Dateinamen (das habe ich grundsätzlich nicht!), das sollte jetzt auch behoben sein.
      Das könnte die merkwürdigen Fehlermeldungen erklären, die Verzeichnisse wurden einfach ignoriert.
      Es besteht eventuell noch die Möglichkeit, dass es noch mit bestimmten Sonderzeichen Probleme geben kann.
      Wenn du angeben kannst, was du an Sonderzeichen drin hast, könnte ich nochmal gezielt testen.


    Viel Erfolg bei der Anwendung und wie schon beim letzten Mal:
    Anwendung auf eigene Gefahr!

    Dateien

    Gruss
    SHF


  • Vielen Dank !


    das Script hat mir, so wie es jetzt ist, einige Arbeit gemacht und einige Arbeit abgenommen :)


    Das Verschieben funktioniert so wie es ist. Allerdings hatte ich *vorher* (also früher) folgendes gemacht:



    Aufnahme in /video.00/Film/Bandits


    per Hand (bzw. mc) verschoben nach


    /video.00/Film/B/Bandits


    dabei sind die einzelnen Dateien auf /video.01... natürlich *nicht* verschoben worden. Diese werden num vom Script gefunden, und es wurden in /video.00/Film/Bandids die Links zu den gefundenen Dateien erstellt.
    Dadurch waren aber auch die Links im verschobenen Verzeichnis ungültig und wurden gelöscht - bis auf info.vdr und index.vdr ...


    ist nicht so schlimm, war halt nur etwas Such- und Verschiebearbeit ...



    Das Suchen nach nicht vollständigen Aufnahmen funktioniert und hat bei mir fast 800 GB freigeschaufelt :)
    Ob die letzte Datei fehlt, könnte man nur checken, wenn man die Dateilängen der einzenen 00x.vdr vergleicht, evtl. mit der im Setup eingestellten maximalen Dateigröße. Man kann zu über 90% davon ausgehen, daß die letzte Datei kleiner ist als der Durchschnitt der anderen dateien...


    Der Aufruf von genindex klappt auch.


    Probleme mit Sonderzeichen sind mir nicht aufgefallen.


    Insgesamt: Note Sehr Gut :)

  • Ich denke das Problem sollte auf den Durchlauf mit der *vorherigen* Version zurückzuführen sein. Durch die Leer/Sonderzeichengeschichte sind wohl einige Verzeichnisse auf /video0 einfach nicht bearbeitet worden.


    Für jetzt neu verschobene Aufnahmen sollte es eigentlich klappen, sofern die Links intakt sind.
    Falls es auf /video0 nämlich kein passendes Verzeichnis gibt wird nach einem Link auf die Datei gesucht und diese dann entsprechend verschoben.
    Bei mir klappt das einwandfrei, es ist aber nicht ausgeschlossen, dass die Funktion evtl. noch andere Probleme mit dem einen oder anderen Sonderzeichen hat.
    Sollte das noch mal auftreten poste mal die entsprechenden Dateinamen, dann sollte sich der Fehler schnell einkreisen lassen.


    Zitat

    Das Suchen nach nicht vollständigen Aufnahmen funktioniert und hat bei mir fast 800 GB freigeschaufelt :)
    Ob die letzte Datei fehlt, könnte man nur checken, wenn man die Dateilängen der einzenen 00x.vdr vergleicht, evtl. mit der im Setup eingestellten maximalen Dateigröße. Man kann zu über 90% davon ausgehen, daß die letzte Datei kleiner ist als der Durchschnitt der anderen dateien...

    Das währe die simpelste Möglichkeit, dürfte aber im zusammenspiel mit dem Hardlinkscutter-Patch nicht viel bringen, da bei dem afaik. auch in der Mitte kleinere Dateien auftreten.


    Mir ist inzwischen noch die Idee gekommen, ob man irgendwie über die index.vdr herausfinden kann, ob was fehlt. Näher angeschaut habe ich mir das aber noch nicht.

    Gruss
    SHF


Jetzt mitmachen!

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