Verteilte VDR Aufnahmen zusammen kopieren

  • Nach 4 Jahren VDR haben sich tausende Aufnahmen, veteilt auf x Datenträger, angesammelt. Es wird Zeit aufzuräumen und alles auf meine neu erworbenen 2 Terabyte zusammen zu kopieren. Doch das System, mit welchem VDR Aufnahmen ablegt, man das Unternehmen zum Alptraum.


    Ich habe jetzt alle Daten einfach mal auf den neuen grossen Speicherort zusammen kopiert. Durch all den Diskwechsel, Ausbau, Umbau, Datenverschiebungen etc. in all den Jahren stimmen die meisten Symlinks sowieso nicht mehr und zeigen ins Leere.


    Im neuen VDR habe ich nun nur noch video0 (local) und video1 (smbshare).


    Als erstes muss ich nun die Symlinks wieder herstellen. Leider habe ich zuwenig UNIX KnowHow, um ein brauchbares Script zu erstellen, welche die Aufgabe flott durchführen kann.


    - Könnte mir jemand ein kleines Script machen, welches für ALLE 0??.vdr Dateien, die es unter /video1 findet, einen Symlink unter /video0 erstellt, bzw, einen allfällig vorhandenen ersetzt (unter gleichem Pfad, evtl. erstellen wenn nicht vorhanden)?



    Als zweites möchte ich erreichen, dass in Zukunft auf video0 AUSSCHLIESSLICH die index.vdr, summary.vdr usw. liegen (was VDR ja sowieso nur in video0 macht), aber KEINE 0??.vdr Dateien mehr, sonden NUR symlinks auf video1. Irgendeine Idee, wie ich das erreichen kann?


    Und als drittes möchte ich eine der Ursachen für das jetztige Chaos beseitigen: Beim Verschieben von Aufnahmen unter /video0 bleibt der Symlink unverändert, d.h. die 0??.vdr Dateien unter /video1 wird nicht analog verschoben. Damit geht die klare Relation von den Verzeichnissen /video0 zu /video1 verloren. Ein Script, welches die Daten unter /video1 mitverschiebt und den Symlink entsprechend korrigiert, wäre da nötig.


    Für einen UNIX Kenner ist das alles wahrscheindlich genauso easy wie für micht unter Windows das wäre... :(. Ich hoffe, ein solcher hat etwas Zeit dafür :arme

    Neuer VDR ab März 2011: 1,7 Ghz Intel Pentium 4 768Mb RAM LinVDR 0.7 mit Kernel Update 2.6.15.1 und MarkTwain 1.3.23, 1x TT S-2300 FF und 2x TT Nova Budget
    mit RT8169SC Gbit via NFS zu /video0 auf Synology DS409 RAID5

    LinVDR = alt, aber bis heute UNGESCHLAGEN effizient :)

  • Hi,


    zu diesem und ähnlichen Problemen gibt's bereits ne Menge Infos inclusive Scripten, die hier im Forum kursieren.
    hihi, jetzt darf ich auch mal ;o): :suchen


    Obs genau auf dein Problem passt weis ich nicht, habs selbst nie getestet, aber versuchs mal HIER



    Gruß

    VDR-Sever: ct-VDR 6 und vdrdevel 1.7.0, AthlonXP1600+,256MB RAM, 1.7TB HDD, DVB-S Technotrend 1.6
    VDR-Client:VDR-1.4.4,Sarge, VIA EP ML-6000EA Mini-ITX Motherboard 677MHz, 512MB RAM, 1050GB HDD, DVB-S Technotrend 1.6; Kernel 2.6.16-ct-1
    NFS-File-Server; openSuse10.2: Atholon 3400+, 1GB RAM, 4.0TB HD, :P
    Server: SuSE9.3, Kernel 2.6.11.4-21-7

  • :nichtdoof Grumpf :D


    Hast ja recht. Ich tu mich nur immer schwer, mit den richtigen Such-begriffen.... entweder krieg ich zuviel oder gar nix.

    Neuer VDR ab März 2011: 1,7 Ghz Intel Pentium 4 768Mb RAM LinVDR 0.7 mit Kernel Update 2.6.15.1 und MarkTwain 1.3.23, 1x TT S-2300 FF und 2x TT Nova Budget
    mit RT8169SC Gbit via NFS zu /video0 auf Synology DS409 RAID5

    LinVDR = alt, aber bis heute UNGESCHLAGEN effizient :)



  • Also wegen drittens kannst erstens vergessen. Das geht nur über Handarbeit.


    Alternativ könntest Du, wenn Du den alten VDR mit der "chaotischen" Verteilung noch hast, und einen neuen PC/HDDs hast, mit genug freiem Platz alle Aufnahmen vom alten Platz auf den neuen Platz mit der Option -L (falls ich cp --help richtig gelesen habe) kopieren.


    Dann hättest am neuen Platz alles in video0 ohne Links. Dann könntest via script (:suche) das so einstellen, dass alles auf video1 und auf video0 nur links sind das müßtest aber bei jeder neuen Aufnahme wieder machen.

  • Das Zusammenkopieren mit "follow symlinks" habe ich schon gemacht, aber wie gesagt, die meisten zeigen ins Leere. Ich weiss eben auch nicht mehr, nach wo die alten Datenbestände gemountet waren (videox oder gar /user/var/video.0x da ich auch Ausfüge nach c't VDR machte).


    Ich kann auch nicht alles nach video0 kopieren. Der Terabytespeicher ist ein NTFS System an einen Windows-Fileserver :). Ich wollte zwar erst alles direkt an video0 mouten, doch hier überfordern die permanenten Zugriffe auf index.vdr offenbar die smb-verbindung bei Aufnahmen, was Aussetzer und Abbrüche beschehrt.


    Ich bin ja schon seit Tagen an Handarbeit. Wär das Windows, wär ich auch schon fertig. Aber wenn ich mir ein Bash Script ansehe, wie z.B. das im Link von hego, wird mir schlecht, denn das ist für mich nur Bahnhof. Ich hätte länger das Script zu kapieren um es anzupassen,als jede Datei einzeiln zu behandeln :(


    Ich dachte eigentlich, die Anforderung "Erstens" würde sich mit genauso wenig Zeilen wie unter Windows mir vbs oder wsh lösen lassen :(


    Wieso soll drittens nicht gehen? Die Informationen dazu sind ja alle vorhanden. Ich weiss nur nicht wie auslesen und anwenden in einem UNIX Script. Ich würde einfach das Script zum verschieben verwenden. Wenn ich die Daten mit mv oder sonstwie verschiebe ist mir schon klar, das es nicht geht.

    Neuer VDR ab März 2011: 1,7 Ghz Intel Pentium 4 768Mb RAM LinVDR 0.7 mit Kernel Update 2.6.15.1 und MarkTwain 1.3.23, 1x TT S-2300 FF und 2x TT Nova Budget
    mit RT8169SC Gbit via NFS zu /video0 auf Synology DS409 RAID5

    LinVDR = alt, aber bis heute UNGESCHLAGEN effizient :)

    Einmal editiert, zuletzt von nextlevel ()

  • Hi nextlevel:


    Erstens: Suchen, scripten, Handarbeit; sorry. Das Problem hatte ich auch schon mal.:o(


    Zweitens sollte kein Problem sein: Habe mal hier im Forum gelesen, dass der VDR auf video0 keine 00x.vdr Dateien ablegt, wenn der Speicherplatz <5GB ist. Ergo vidoe0 partition auf 5GB beschränken.


    Drittens geht natürlich, aber eben nur über script.

    VDR-Sever: ct-VDR 6 und vdrdevel 1.7.0, AthlonXP1600+,256MB RAM, 1.7TB HDD, DVB-S Technotrend 1.6
    VDR-Client:VDR-1.4.4,Sarge, VIA EP ML-6000EA Mini-ITX Motherboard 677MHz, 512MB RAM, 1050GB HDD, DVB-S Technotrend 1.6; Kernel 2.6.16-ct-1
    NFS-File-Server; openSuse10.2: Atholon 3400+, 1GB RAM, 4.0TB HD, :P
    Server: SuSE9.3, Kernel 2.6.11.4-21-7

  • Hallo mostho,


    Zitat

    Original von mostho
    ...
    Also wegen drittens kannst erstens vergessen. Das geht nur über Handarbeit.


    Es haben schon genug an diesem Problem gearbeitet, ich auch.


    Ich kann die Aufnahmen auf /video0 frei umbenennen/verschieben (nur die Verzeichnisse mit den Links) und mein script benamst die entsprechenden Verzeichnisse auf den /video1-9 Verzeichnissen entsprechend um.


    Das script ist hier


    Hardy

    Suche: 6 Richtige für die nächste Lottoziehung
    PS: Wer Rechtschreibfehler findet, darf sie behalten!

  • Zitat

    Original von nextlevel
    Das Zusammenkopieren mit "follow symlinks" habe ich schon gemacht, aber wie gesagt, die meisten zeigen ins Leere. Ich weiss eben auch nicht mehr, nach wo die alten Datenbestände gemountet waren


    [...]


    Wieso soll drittens nicht gehen? Die Informationen dazu sind ja alle vorhanden.


    Verstehe ich nicht ganz. Wenn bei Dir symlinks in Leere zeigen, also zB ein link nach videoX zeigt, videoX aber gar nicht mehr existiert, woher weißt Du dann, dass die Datei auf die seinerzeit verlinkt war, jetzt zB unter video.AB liegt?


    Also wenn Links ins Leere zeigen (dann hast ein Problem), dann verstehe ich "Die Infos sind alle vorhanden" nicht.


    Wenn alle Infos vorhanden sind (korrekte Links) dann müßte kopieren mit follow sysmlinks funktionieren (und wenn Du es zur Not auf Etappen machst)


    Vielleicht kannst das ein bisserl genauer schildern, so kann ich dzt. nicht weiterhelfen. Und bleibe vorerst dabei "drittens schließt erstens aus".


  • Vielleicht gehe ich ja von falschen Annahmen aus:


    1. VDR hat verteilt aufgenommen.
    2. Er hat über VDR Aufnahmen umbenannt (dh nur auf video0 wurde der Name geändert, nicht parallel auf video1)
    3. Durch Plattenwechsel und Distriwechsel zeigen Links ins Leere.


    Wie man mit diesen Voraussetzungen mit scripts erkennen will, dass der aktuell ins Leere zeigende Link /video0/Serien/Tatort/das_ist_der_neue_Name/2007-07-06.14.00.99.99.rec eigentlich ein Link auf /video.03/Old_Name/2007-07-06.14.00.10.10.rec sein soll, muss man mir vorzeigen.


    So komme ich zu meiner Aussage ohne Handarbeit gehts net.

  • HFlor


    Ich hab das script zwar geladen, aber ich werd hier unter LINVDR mit Fehlermeldungen angemotzt:

    Code
    linvdr:/# ./copy_videofiles.sh -h
    bash: ./copy_videofiles.sh: No such file or directory
    ./copy_videofiles.sh -h
    ./copy_videofiles.sh: line 1: /usr/lib/vdr/svdrpsend.pl: No such file or directory
    ./copy_videofiles.sh: line 57: [: -lt: unary operator expected
    ./copy_videofiles.sh: line 67: [: -lt: unary operator expected
    Nächste Aufnahme in  Sekunden.
    Aufnahmen werden umbenant ...


    Ausserdem hab ich höllischen Bammel davor, das es mir meine Aufnahmen zerschiesst, weil ich nicht aufschlüsseln kann was es eigentlich genau macht. :deppenalarm


    mostho


    Zitat

    Verstehe ich nicht ganz. Wenn bei Dir symlinks in Leere zeigen, also zB ein link nach videoX zeigt, videoX aber gar nicht mehr existiert, woher weißt Du dann, dass die Datei auf die seinerzeit verlinkt war, jetzt zB unter video.AB liegt?


    GENAU das weiss ich eben NUR noch wegen den Namen der Verzeichnisse, hauptsächlich aufgrund des Aufnahmedatums/Zeit (z.b. 2007-07-06.14.00.10.10.rec)


    Erste Sahne wär sicher ein Script, welches mir aufgrund des Verzeichnissnamens unter (jetzt) video1, die darin liegenden 0??.vdr zum korrespondiereden Verzeichnis auf /video0 verlinkt :). Also für 0??.vdr Dateien in /video1/woauchimmer/2007-07-06.14.00.10.10.rec, im gleichnamigen 2007-07-06.14.00.10.10.rec im video0 erstellt, egal woauchimmer dieses Verzeichnis im video0 liegt. Aber so anspruchsvoll wollte ich gar nicht werden. Das ist zwar möglich, aber wohl doch ein happigeres Script.


    "Drittens" ist nur ein Wunsch für die ZUKUNFT, wenn ich wieder Daten verschiebe, nicht um das aktuelle Chaos zu lösen.

    Neuer VDR ab März 2011: 1,7 Ghz Intel Pentium 4 768Mb RAM LinVDR 0.7 mit Kernel Update 2.6.15.1 und MarkTwain 1.3.23, 1x TT S-2300 FF und 2x TT Nova Budget
    mit RT8169SC Gbit via NFS zu /video0 auf Synology DS409 RAID5

    LinVDR = alt, aber bis heute UNGESCHLAGEN effizient :)

    2 Mal editiert, zuletzt von nextlevel ()

  • Das Script für "erstens" hab ich mir mal zusammengebastelt. Ich hab zwar 2 Strunden dafür gebraucht, weil ich ja eben keine Ahnung von bash habe, aber immer noch schneller als alles von Hand zu machen.


    Das Script von hflor hat mir als Vorlage geholfen. Ich hab auch jetzt noch kenen Schimmer was all das Zeugs bei awk bedeutet oder tut, aber Hauptsache es geht.

    Neuer VDR ab März 2011: 1,7 Ghz Intel Pentium 4 768Mb RAM LinVDR 0.7 mit Kernel Update 2.6.15.1 und MarkTwain 1.3.23, 1x TT S-2300 FF und 2x TT Nova Budget
    mit RT8169SC Gbit via NFS zu /video0 auf Synology DS409 RAID5

    LinVDR = alt, aber bis heute UNGESCHLAGEN effizient :)

    Einmal editiert, zuletzt von nextlevel ()

  • Hi,
    wird es da vielleicht mal Zeit fuer ein kleines (oder groesseres) Perl-Skript? Da ich _nicht_ mit Symlinks sondern Subdirectories arbeite kann ich da wenig konkretes sagen, aber ich denke Perl ist maechtig genug, um den Wirrwarr mit den Links aufzuloesen.


    Nur mal so als Anregung...


    Gruss,
    - berndl

  • Zitat

    Original von mostho
    1. VDR hat verteilt aufgenommen.


    Dies wird während des Arbeit des Scriptes auf eine Platte geschieben, wenn gewünscht auch die index.vdr & co. von /video0 mit.


    Zitat

    2. Er hat über VDR Aufnahmen umbenannt (dh nur auf video0 wurde der Name geändert, nicht parallel auf video1)


    Das ist der Sinn der ersten Umbenennung, damit werden die Namen auf den anderen Platten eben genau so wie auf /video0 angepasst.


    Zitat

    3. Durch Plattenwechsel und Distriwechsel zeigen Links ins Leere.


    Auch das ist kein Problem, es werden alle Links auf /video0 neu erstellt, mit allen Aufnahmen die auf /video1-9 gefunden werden.


    Zitat

    Wie man mit diesen Voraussetzungen mit scripts erkennen will, dass der aktuell ins Leere zeigende Link /video0/Serien/Tatort/das_ist_der_neue_Name/2007-07-06.14.00.99.99.rec eigentlich ein Link auf /video.03/Old_Name/2007-07-06.14.00.10.10.rec sein soll, muss man mir vorzeigen.


    So komme ich zu meiner Aussage ohne Handarbeit gehts net.


    Ich habe es schon sehr lange im Einsatz, auch mit vielen wechselnden Platten, bisher noch keine Problem.


    Hardy



    PS: es gibt auch im Portal eine angepasste Version für Linvdr, nicht von mir. Ich kenne aber leider den Link i.M. nicht.

    Suche: 6 Richtige für die nächste Lottoziehung
    PS: Wer Rechtschreibfehler findet, darf sie behalten!

Jetzt mitmachen!

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