[Script] Bash script für Streamrecording

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von MasterJulian, 5. August 2008 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 5. August 2008
    Bash script für Streamrecording

    Ich sags gleich vorweg ich hab von Bash scripting wenig ahnung. Ich möcht ein script schreiben, welches mir einen stream speichert. Der haken daran: Der Stream läuft nicht 24/7 und fängt nicht immer ganz pünktlich an bzw fällt auch mal aus (das Script soll deshalb 10 mal im abstand von 10 min schaun ob der stream verfügbar ist). Ich würds ja auch auf meinem PC (mit gui) machen, aber der läuft meist zu etwas unhumanen Zeiten , deshalb soll das auf meinem server + contrab laufen. So sieht mein momentanes (ungetestetes Script) aus:
    Code:
    #!/bin/bash
    stream=mms://meinstream
    counter=0
    if [ "$1" = "" ]; then
    filename=stream-date +%d.%m.%Y-%H:%M
    else
    filename=$1-date +%d.%m.%Y-%H:%M
    fi
    
    check
    
    function quit {
    exit
    } 
    
    function check {
    ./mmsrip -t $stream
    (wie resultat auslesen?)
    if (stream verfügbar) then
    record
    else
    if [ "$counter" = "10" ]; then
    quit
    else
    counter = $counter + 1 (geht das so??)
    sleep 60
    check
    fi
    fi
    } 
    
    function record {
    ./mmsrip -o$filename $stream
    quit
    }
    Alle Problemstellen wurden in () geschrieben. Kann sich das mal wer ansehn und mir helfen?
     
  2. 5. August 2008
    AW: Bash script für Streamrecording

    Hey!

    Ich habs mal geordnet
    Kann fuer nichts garantieren, hab selber schon lange nichts mehr in Bash gescriptet.

    Code:
    #!/bin/bash
    
    stream="mms://meinstream"
    counter=0
    
    if [ "$1" = "" ]; then
     filename="stream-`date +%d.%m.%Y-%H:%M`"
    else
     filename="$1-`date +%d.%m.%Y-%H:%M`"
    fi
    
    while [ $counter -lt 10 ]; do
     ./mmsrip -t $stream
     # Ich nehm mal an, wenn der Befehl erfolgreich ausgefuehrt worden ist
     # dann hat es auch geklappt...
     # Wenn du den Output willst: var=`./mmsrip -t $stream`
     if [ $? -eq 0 ]; then
     ./mmsrip -o $filename $stream
     exit
     else
     counter=`expr $counter+1`
     sleep 60
     fi
    done
    Mfg,

    Kolazomai
     
  3. 5. August 2008
    AW: Bash script für Streamrecording

    ok danke. Der Output von ./mmsrip -t $stream ist mehrzeilig und die letzte zeile lautet entweder
    Stream 'mms://meinstream' is available.
    oder
    Stream 'mms://meinstream' is not good.
    kann ich da die letzte zeile irgendwie extrahieren und vergleichen?
     
  4. 5. August 2008
    AW: Bash script für Streamrecording

    Huhu!

    Das waere wohl das dann hier:

    Code:
    #!/bin/bash
    
    stream="mms://meinstream"
    counter=0
    
    if [ "$1" = "" ]; then
     filename="stream-`date +%d.%m.%Y-%H:%M`"
    else
     filename="$1-`date +%d.%m.%Y-%H:%M`"
    fi
    
    while [ $counter -lt 10 ]; do
     ./mmsrip -t $stream > script.tmp
     if [ `tail -n 1 script.tmp | grep available` != "" ]; then
     ./mmsrip -o $filename $stream
     exit
     else
     counter=`expr $counter+1`
     sleep 60
     fi
    done
    
    rm -f script.tmp
    Edit:
    Es koennte sein, dass bei
    Code:
    `tail -n 1 script.tmp | grep available`
    kein String rauskommt. Bin mir da nicht sicher. Eine Loesung waere
    Code:
    "`tail -n 1 script.tmp | grep available`"
    Mfg,

    Kolazomai
     
  5. 5. August 2008
    AW: Bash script für Streamrecording

    Thx. Ich hab noch "rm script.tmp" hinzugefügt. BW ist schon lange raus. Ich werd's bei der nächsten gelegenheit mal testen. Bis dahin erstma zu (und auch nicht wieder auf wenn funktioniert )
    edit: Grad noch mal getestet:
    2. Probleme:
    1. ./mmsrip -t $stream > script.tmp liefert ein leeres File (erg wird einfach in der konsole angezeigt) Gelöst: muss so lauten ./mmsrip -t $stream &> script.tmp
    2. counter=`expr $counter+1` => counter wird zu 0+1 ok gehört so "`expr $counter + 1`"
     
  6. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.