Alle Timer löschen per Shell-Skript

  • Hallo!


    Hat jemand eine Idee, wie ich per Shell-Skript alle Timer löschen kann?


    Ich dachte da an so etwas wie "/usr/bin/svdrpsend.pl DELT <Nummer>".
    Wobei <Nummer> aber eben das Problem ist.
    Wie bekomme ich am geschicktesten raus, wie viele Timer existieren?
    Und wie lasse ich <Nummer> dann hochlaufen?


    Bin nicht sehr erfahren in Sachen Shell-Skript.


    Hintergrund ist der, das ich mir per tvmovie2vdr das EPG hole. Allerdings auch noch über Sat vom jeweiligen Sender. Läuft das EPG von tvmovie2vdr jetzt aus, werden zwar weiter Timer programmiert, aber eben nicht so "ausführlich", wie mit dem EPG von tvmovie2vdr. Bei Serien fehlt z.B. der Episodentitel.
    Aus diesem Grund möchte (muss) ich nach dem EPG-Update per tvmovie2vdr alle Timer löschen, so das der Autotimer sie neu anlegen kann.


    Für's online gehen (geschieht über einen FLI4L Router über ISDN) und das eigentliche Update existiert schon ein Skript. Da müsste jetzt eben nur noch das Timer-Löschen rein.


    Gruß
    BOP

    ASUS M4A78LT-M GL | AMD Athlon II X2 250 | 2GB RAM | Asus ENGT430 | Digital Devices OctopusNet mit 2 x Digital Devices DuoFlex S2 | PS3Remote | yaVDR 0.6.1

  • warum so kompliziert?


    Code
    rm timers.conf
    touch timers.conf


    sollte das Problem doch lösen, oder ;)


    In ein script eingebaut, fertig.


    gruß
    TheEnvoy

    Now There's A lesson To Learn,
    Respect's not Given,
    It's Earned.
    --
    System : Gehäuse: techsoloTC-380 // HW: Atom 330 @ ASUS AT3IONT-I Deluxe, 4GB RAM, 2TB Samsung F4 EcoGreen HD204UI, TT6400 // SW: MLD 5.4 stable // Octopus NET S2 Max // Client: NVidia ShieldTV // LNB: DurSAT UK124

  • Hallo BOP,



    z.b.


    Code
    anzahl=$(svdrpsend.pl lstt | wc -l)
    let "anzahl -= 2"
    for nummer in $(seq 1 $anzahl)
    do
      svdrpsend.pl delt $nummer
    done


    Hardy

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

  • Zitat

    Original von TheEnvoy

    Code
    rm timers.conf
    touch timers.conf


    sollte das Problem doch lösen, oder ;)


    Nicht ganz, da VDR nicht im Mindesten interessiert wenn sich die Datei von aussen verändert ;)

  • @ HFlor
    Jup, Danke, so gehts fast.
    Ich vermute, man muss die Timer rückwärts löschen. Also mit dem letzten anfangen.
    Denn wenn ich z.B. die Timeranzahl mit "svdrpsend.pl lstt | wc -l" abfrage, bekomme ich 16 gesagt. Minus zwei, macht 14. Das stimmt auch mit dem überein, was mir ein "svdrpsend.pl lstt" sagt.
    Führe ich das Skript jetzt aber aus, passiert folgendes:


    Ab der Hälfte meint er also, es wären keine Timer mehr vorhanden. Was ja auch stimmt. Denn die Timernummer korrigiert sich ja, wenn ich vorne anfange zu löschen. Nach dem ersten Löschen wird aus 2 ja 1 usw....


    Da ich die Syntax in "for nummer in $(seq 1 $anzahl)" nicht verstehe, weiß ich jetzt nicht, wie ich das ändern muss!?


    @ TheEnvoy
    Ein rm löst das Problem nur in Zusammenarbeit mit einem Neustart. Das möchte ich aber verhindern.


    Gruß

    ASUS M4A78LT-M GL | AMD Athlon II X2 250 | 2GB RAM | Asus ENGT430 | Digital Devices OctopusNet mit 2 x Digital Devices DuoFlex S2 | PS3Remote | yaVDR 0.6.1

  • Warum löschst du nicht solange immer wieder timer 1, solange bis eine Fehlermeldung kommt der würde nicht existieren?

  • Ja, gut, das geht auch. Dann müsste ich aber abfragen, wann ein Fehler kommt.
    Das mit dem "Nachrutschen" ist mir auch eben erst aufgefallen.


    Na ja, so gehts jetzt auf jeden Fall auch:

    Code
    anzahl=$(svdrpsend.pl lstt | wc -l)
    let "anzahl -= 2"
    for (( nummer = $anzahl; nummer>=1; nummer-- )) 
    do                         
      svdrpsend.pl delt $nummer
    done


    So löscht er von Hinten.


    Vielen Dank für Eure Hilfe!


    Gruß

    ASUS M4A78LT-M GL | AMD Athlon II X2 250 | 2GB RAM | Asus ENGT430 | Digital Devices OctopusNet mit 2 x Digital Devices DuoFlex S2 | PS3Remote | yaVDR 0.6.1

    Einmal editiert, zuletzt von BOP ()

Jetzt mitmachen!

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