[Gelöst] Auslesen Zeit bis zum nächsten Timer für bash-script

  • Hallo,


    ich möchte auf meinem Server das Nachts automatisch per Cron Scripte gestartet werden:

    - markad => das bash script ist im Paket mit dabei (start_markad_videos), weil ich insgesamt 6 Tuner habe und wenn die wirklich mal alle laufen, will ich nicht das die CPU weiter belastet wird

    - Backup-Script) => ein bash script welches ich auch sonst nutze

    - EPG scannen (wenn er sowieso schon mal läuft) => svdrpsend SCAN


    Anschließend soll der Rechner dann runter fahren, aber nur wenn der nächste Timer nicht in Kürze ansteht (20 Minuten?) oder er sowieso gerade aufnimmt.


    Das mit dem Timer heraus finden geht z. B. so:


    Code
    easyvdr@easyVDRDachboden:~/bin/AAA_test$ svdrpsend next rel
    220 easyVDRDachboden SVDRP VideoDiskRecorder 2.2.0; Tue Feb  1 18:07:23 2022; UTF-8
    250 1 8257
    221 easyVDRDachboden closing connection


    Wie bekomme ich diese Ausgabe zuverlässig von in dem Fall 8257 Minuten in einem bash-script in eine Integer-Variable (timer)? Die Zahl 1 davor ist vermutlich der verwendete Tuner, weil da habe ich immer mal verschiedene Zahlen.

    Mit den Minuten kann ich dann hoffentlich so was hier machen:


    Code
    limit=1200 # 20 Minuten
    
    if [ $limit -gt $timer ]; 
      then echo "Nächster Timer kleiner 30 Minuten => NICHT herunter fahren"
    else 
      echo "Nächster Timer größer 30 Minuten => herunter fahren"
      poweroff (bzw. was dafür nötig ist)
    fi

    Setze ich timer= 8257 oder eben kleiner funktioniert das schon mal.


    Ich habe diverse Dinge versucht die 8257 als timer-Variable aus dem Aufruf zu extrahieren. Für bash,sed, awk-Profis ist das sicherlich easy-going, mich überfordert das als hin und wieder mal Befehlseintipper in der bash.


    Gruß Ralf

    Wohnzimmer (easyVDR 5.0):

    Intel NUC 7PJYH / 8 GB RAM / 60 GB SSD / SMK RC6 MCE 50GB

    Dachboden (easyVDR 5.0):
    Asrock J4105 / 8 GB RAM / CINE S2 (V6.5) + DuoFlex S2 / CINE S2 (V6.5) / 60 GB (SAMSUNG SSD 830) / 8 TB (HGST HUS728T8TAL) / Futaba MDM166A / SMK RC6 MCE 50GB / Cooltek G3 / attric IR (Rev.5)

    weitere Kodi-clients (LibreELEC, CoreELEC):

    Raspi 3 (Openelec) und Odroid C4 (Coreelec)

  • Das müßte der VDR doch selbst können, je nach eingestellter Idle- oder Brückenzeit zwischen Aufnahmen ... und mittels lifeguard verhindern, daß er während der Ausführung obiger Scripts versucht, runterzufahren?


    Ansonst sollte

    Code
    set `svdrpsend next rel`; limit=${14}

    helfen.

    Einmal editiert, zuletzt von wmautner ()

  • Ich habe in meinem Install-Skrpt folgende Abfrage drin:

  • Hallo zimuland,


    danke, direkt ausprobiert, haut bei mir aber nicht hin.


    Ich habe noch Zeile 6 und 7 eingefügt um die Variable TIME auszugeben.


    Code
    easyvdr@easyVDRDachboden:~/bin/AAA_test$ svdrpsend NEXT rel
    220 easyVDRDachboden SVDRP VideoDiskRecorder 2.2.0; Sat Feb  5 10:33:56 2022; UTF-8
    250 9 -10736
    221 easyVDRDachboden closing connection
    
    easyvdr@easyVDRDachboden:~/bin/AAA_test$ bash test1.sh 
    
    time =-10769
    : Ganzzahliger Ausdruck erwartet.
    easyvdr@easyVDRDachboden:~/bin/AAA_test$


    Aufnahme läuft gerade, aber er zieht sich schon richtig die in dem Fall negative Zahl. Sollte doch egal sein das sie negativ ist oder nicht?


    Gruß Ralf

    Wohnzimmer (easyVDR 5.0):

    Intel NUC 7PJYH / 8 GB RAM / 60 GB SSD / SMK RC6 MCE 50GB

    Dachboden (easyVDR 5.0):
    Asrock J4105 / 8 GB RAM / CINE S2 (V6.5) + DuoFlex S2 / CINE S2 (V6.5) / 60 GB (SAMSUNG SSD 830) / 8 TB (HGST HUS728T8TAL) / Futaba MDM166A / SMK RC6 MCE 50GB / Cooltek G3 / attric IR (Rev.5)

    weitere Kodi-clients (LibreELEC, CoreELEC):

    Raspi 3 (Openelec) und Odroid C4 (Coreelec)

  • Hallo,


    als ich TIME in eine Datei geschrieben habe, konnte man sehen das ein ^M (carriage Return / line feed ) hinter der Zahl war.


    Per google dann gefunden wie man Steuerzeichen entfernt:


    Code
    CLEANED=${TIME//[$'\t\r\n']}

    bash und ich werden keine Freunde...


    Gruß Ralf

    Wohnzimmer (easyVDR 5.0):

    Intel NUC 7PJYH / 8 GB RAM / 60 GB SSD / SMK RC6 MCE 50GB

    Dachboden (easyVDR 5.0):
    Asrock J4105 / 8 GB RAM / CINE S2 (V6.5) + DuoFlex S2 / CINE S2 (V6.5) / 60 GB (SAMSUNG SSD 830) / 8 TB (HGST HUS728T8TAL) / Futaba MDM166A / SMK RC6 MCE 50GB / Cooltek G3 / attric IR (Rev.5)

    weitere Kodi-clients (LibreELEC, CoreELEC):

    Raspi 3 (Openelec) und Odroid C4 (Coreelec)

  • Das Runterfahren, wie schon gesagt, läßt sich mit "Brückenzeit" und "Idle-Zeit" im VDR-Setup regeln, liffeguard verhindert das Runterfahren, während Scripts wie markad etc. laufen,

    Für markad + hevc-Konversion (vdr-convert) hab ich einen "Service":

    Der Marker "h264") - ein leeres File - wird nach Ende einer Aufnahme mittels recording-hook ins Verzeichnis geschrieben und nach Bearbeitung entfernt.

    und das dazupassende Script:

    Well, I have (ab)used the to_h264 scripts, obviously and changed over to vdr-convert :)

    Here the conv_hevc:

  • Hallo wmauter,


    danke für deine Hinweise und deine Mühe, ich habe mich aber gegen lifeguard entschieden und es mit der Abfrage des timers im Script gemacht. Geht auch.


    Gruß Ralf

    Wohnzimmer (easyVDR 5.0):

    Intel NUC 7PJYH / 8 GB RAM / 60 GB SSD / SMK RC6 MCE 50GB

    Dachboden (easyVDR 5.0):
    Asrock J4105 / 8 GB RAM / CINE S2 (V6.5) + DuoFlex S2 / CINE S2 (V6.5) / 60 GB (SAMSUNG SSD 830) / 8 TB (HGST HUS728T8TAL) / Futaba MDM166A / SMK RC6 MCE 50GB / Cooltek G3 / attric IR (Rev.5)

    weitere Kodi-clients (LibreELEC, CoreELEC):

    Raspi 3 (Openelec) und Odroid C4 (Coreelec)

  • Ich habe das so gelöst:


    Christian

Jetzt mitmachen!

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