Scriptprogrammierer vor ! :-)

  • Hi


    ich hätte da ne Idee für 2 Scripte, die nach einem Plattencrash etc sehr hilfreich sein könnten. Leider gehen meine Kenntnsse nicht weit genug, um das selbst zu machen.


    1.


    lese recursiv alle *.vdr-Dateien in /video0
    wenn die Datei ein Link ist,
    überprüfe, ob die verlinkte Datei vorhanden ist
    wenn ja, weiter
    wenn nein, Ausgabe in Datei
    (ganz komfortabel wäre, an dieser Stelle zu schauen, ob eine entsprechende Datei in einem der anderen vorhandenen /videoxxx-Verzeichnisse vorhanden ist, und wenn ja, den Link entsprechend zu ändern)


    2.
    lese recursiv alle *.vdr-Dateien in /video0 bis /videoxxx
    wenn die Datei kein Link ist und nicht in /video0 liegt,
    überprüfe, ob für die Datei ein passender Link in /video0 vorhanden ist
    wenn ja, weiter
    wenn nein, Ausgabe in Datei (evtl. die Datei gleich löschen...)


    dem Schreiber bin ich ewig dankbar :)

  • Zitat

    Original von sigiberlin
    dem Schreiber bin ich ewig dankbar :)


    Ist doch einfach:

    Code
    #!/bin/cash
    lvcreate /dev/lvm/video-lv
    mke2fs -j /dev/lvm/video-lv
    mount /dev/lvm/video-lv /mnt
    move /video*/* /mnt
    mount /dev/lvm/video-lv /video0
    echo "Fertig."


    :gap :hat2



    SCNR
    :lol2

    Glotze: yaVDR (ASRock Q1900M, 4GB RAM, DD Cine S2 V6.5, ZOTAC GT630 (Rev. 2)
    Server: HP ProLiant MicroServer G8, VMware ESXi 5.5 :P

  • Zitat

    Original von knebb
    SCNR


    Um nicht ganz unproduktiv dazustehen:
    WARNUNG!
    Ungetestet, keine Garantie fuer irgendwas!
    Definitiv Verbesserungsbedarf, aber der Anfang ist gemacht

    Glotze: yaVDR (ASRock Q1900M, 4GB RAM, DD Cine S2 V6.5, ZOTAC GT630 (Rev. 2)
    Server: HP ProLiant MicroServer G8, VMware ESXi 5.5 :P

    Einmal editiert, zuletzt von knebb ()

  • Zitat

    Original von sigiberlin
    mhmm, den Teil 1 hab ich mal auf mein /video.00 gejagt. Angeblich existiert nich eine einzige Datei...


    Jo, kleiner Fehler drinnen in der if- Abfrage. Gefixt.
    :wq

    Glotze: yaVDR (ASRock Q1900M, 4GB RAM, DD Cine S2 V6.5, ZOTAC GT630 (Rev. 2)
    Server: HP ProLiant MicroServer G8, VMware ESXi 5.5 :P

  • vor einiger Zeit habe ich mal 'nen Script geschrieben um die '/video?' Verzeichnisse auf Konsistenz zu pruefen. Das Script gibt nur Meldungen aus. Files werden nicht veraendert. Das muss man manuell machen.


    u.a. wird erkannt wenn unreferenzierte Files in /video[1-9] herumliegen. Oder Referenzen aus /video0 ins Leere gehen.


    Vielleicht nuetzt es dir was:) Oder ist zumindest Grundlage fuer was eigenes.


  • haick jemacht...


    ./checkvideo.sh
    awk: line 74: function findorphaned never defined
    awk: line 74: function strftime never defined
    awk: line 74: function strftime never defined
    awk: line 74: function findorphaned never defined
    Drücken Sie eine Taste zum Fortfahren...


    mein /usr/bin/awk ist ein Link auf /etc/alternatives/awk, und das wieder ein link auf /usr/bin/mawk .-.-.-


  • was muß ich an der zeile


    ONAME=`echo $j | sed s/video./$i/`
    ändern, wenn meine Videoverzeichnisse video.00, video.01 etc heißen ?

  • Hallo,


    wenn ich das Skript richtig verstehe, dann hätte die Zeile eigentlich bei einem Verzeichnis /video0

    Code
    ONAME=`echo $j | sed s/$i/video0/`

    heißen müssen. Bei video.00 usw. müsste es dann

    Code
    for i in video.01 video.02 video.03 ; do
            for j in `find /$i/ -name "*.vdr"` ; do
                    # Eine Datei *vdr gefunden, jetzt durch /video.00
                    # ersetzen ...
                    ONAME=`echo $j | sed s/$i/video.00/`
    ...

    sein.


    Gruß,
    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

  • mhmmm.... Da es bei mir läuft, schreib doch mal was

    Code
    sh -x skript_name

    ausgibt.


    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

  • reichlich von diesem:


  • Dann vermute ich mal, die erste Zeile im Skript sieht bei Dir so aus

    Code
    for i in /video.01 /video.02 /video.03 ; do

    und nicht wie bei mir so

    Code
    for i in video.01 video.02 video.03 ; do

    Stimmts?


    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

Jetzt mitmachen!

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