1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Restart des Webif nutzen für Cronjob ...

Dieses Thema im Forum "OScam Archiv" wurde erstellt von derdaa, 10. März 2011.

  1. derdaa
    Offline

    derdaa Freak

    Registriert:
    29. Dezember 2008
    Beiträge:
    278
    Zustimmungen:
    58
    Punkte für Erfolge:
    28
    servus leute ... da die scripte die hier gepostet werden irgendwie nicht funktionieren (bei mir jedenfalls) nun mal meine frage ob es möglich ist die restart option des Webif irgendwie zu nutzen das per cronjob oscam alle 48 stunden restartet wird

    oscam wurde installiert per svn von streamboa** also liegt die start datei im ordner /usr/local/bin

    ein script was kontrolliert ob oscam läuft ist schon vorhanden und läuft(kurioserweise)

    nun will ich halt zusätzlich das oscam restartet wird alle 48 stunden (von da an beginnen die doppelten user logins) deshalb dieser zeit intervall!


    könnte mir mal jemand da ein wenig die augen öffnen ? ich denke ist vieleicht auch für andere interessant !

    danke schonmal


    PS: suchfunktion hab ich benutzt nur blöderweise ohne ergebnis ... ich bedien die irgendwie falsch also nicht böse sein
     
    #1
  2. phantom

    Nervigen User Advertisement

  3. Superhansi
    Offline

    Superhansi Spezialist

    Registriert:
    26. Februar 2008
    Beiträge:
    666
    Zustimmungen:
    505
    Punkte für Erfolge:
    0
    Ort:
    mittendrin
    AW: Restart des Webif nutzen für Cronjob ...

    Du solltest mal verraten auf welcher Box bei dir OScam läuft, wenn es eine Dream ist bitte auch das Image angeben.
    Mir fällt auf die schnelle keine Box ein, wo das binary in "/usr/local/bin" liegt (ist wohl doch keine Dream und keine Fritzbox).
    Für die Fritzbox hätte ich ein Restart-script, was auch funzt - aber da wird über "/etc/init.d/rc.oscam start" gestartet.




    Gruß Superhansi
     
    #2
  4. derdaa
    Offline

    derdaa Freak

    Registriert:
    29. Dezember 2008
    Beiträge:
    278
    Zustimmungen:
    58
    Punkte für Erfolge:
    28
    okay es ist nicht die fritzbox ...dies ist ein anderes project bei der fritzbox hab ich im cron einfach den komplett restart der fritzbox gemacht

    in dem fall was ich meine handelt es sich um ein ubuntu system also ein eigenständiger pc ... bin schon dabei . autostart dateien zu schreiben das alle programme nach nem reboot neu gestartet werden die da drauf sind fals es keine lösung dazu gibt
     
    #3
  5. Superhansi
    Offline

    Superhansi Spezialist

    Registriert:
    26. Februar 2008
    Beiträge:
    666
    Zustimmungen:
    505
    Punkte für Erfolge:
    0
    Ort:
    mittendrin
    AW: Restart des Webif nutzen für Cronjob ...

    Da gibt es sicher ne Lösung.
    Nur bei Ubuntu-PC kann ich dir nicht weiterhelfen.





    Gruß Superhansi
     
    #4
  6. derdaa
    Offline

    derdaa Freak

    Registriert:
    29. Dezember 2008
    Beiträge:
    278
    Zustimmungen:
    58
    Punkte für Erfolge:
    28
    also hab jetzt n bissl eforscht und geschaut

    da ja ein script alle minute kontrolliert ob oscam läuft hab ich mich für ein radikales system entschieden

    30 4 2 * * root /killall -v oscam

    sollte doch nun alle 2 tage um 4:30 uhr den prozess oscam killen ist doch richtig oder?

    und das kontrollscript müste doch nun 1 minute später oscam neu starten?!

    kurze bestätigung währe nett danke
     
    #5
  7. Superhansi
    Offline

    Superhansi Spezialist

    Registriert:
    26. Februar 2008
    Beiträge:
    666
    Zustimmungen:
    505
    Punkte für Erfolge:
    0
    Ort:
    mittendrin
    AW: Restart des Webif nutzen für Cronjob ...

    Das killt dein OScam an jedem 2. des Monates (wenn das " root /killall -v oscam" richtig ist).

    Siehe

    Dieser Link ist nur für Mitglieder!!! Jetzt kostenlos Registrieren ?

    .

    Wie man jeden 2. Tag was machen kann weiß ich nicht,
    aber für jeden Tag würde das so aussehen: "30 4 * * * root /killall -v oscam"





    Gruß Superhansi
     
    #6
  8. derdaa
    Offline

    derdaa Freak

    Registriert:
    29. Dezember 2008
    Beiträge:
    278
    Zustimmungen:
    58
    Punkte für Erfolge:
    28
    jepp hab es nun so geändert
    30 4 */2 * * root /killall -v oscam
    nun sollte es jeden 2. tag ausgeführt werden

    ich hoffe doch das es so richtig ist lol
    einfacher test des befehls in putty hat es beendet
     
    Zuletzt bearbeitet: 11. März 2011
    #7
  9. T1x
    Offline

    T1x VIP

    Registriert:
    11. Juni 2010
    Beiträge:
    3.859
    Zustimmungen:
    2.719
    Punkte für Erfolge:
    113
    AW: Restart des Webif nutzen für Cronjob ...

    Hier mal mein Script:

    Code:
    #!/bin/sh
    # Start/stop the oscam daemon
    #
    ### BEGIN INIT INFO
    # Provides:          oscam
    # Required-Start:    $syslog $network $pcscd
    # Required-Stop:     $syslog $network $pcscd
    # Default-Start:     2 3 4 5
    # Default-Stop:      0 1 6
    # Short-Description: Start and Stop oscam
    # Description: oscam init script. This script start and stop oscam.
    ### END INIT INFO
    
    . /lib/lsb/init-functions
    
    CAMSERVER="OScam Server"
    BINARY=oscam
    DAEMON=/usr/local/bin/$BINARY
    CONFIG_DIR=/usr/local/etc
    PIDFILE=/var/run/oscam.pid
    OSCAM_LOG=/var/log/vdr/oscam/oscam.log
    OSCAM_USER_LOG=/var/log/vdr/oscam/oscamuser.log
    CW_LOGDIR=/var/log/vdr/oscam/cw
    CW_LOGFILES=$CW_LOGDIR/*.cwl
    START="$DAEMON -- -b -c $CONFIG_DIR"
    
    #test -f $DAEMON || exit 0
    [ -x $DAEMON ] || exit 0
    [ -d $CONFIG_DIR ] || exit 0
    
    echo $BINARY
    
    clear_file() {
          # Clear log and pid file if exists
          if [ -e $PIDFILE ]; then
          rm -f $PIDFILE
          fi
    
          if [ -e $OSCAM_LOG ]; then
          rm -f $OSCAM_LOG
          fi
    
          if [ -e $OSCAM_USER_LOG ]; then
          rm -f $OSCAM_USER_LOG
          fi
    
          if [ -d $CW_LOGDIR ]; then
          rm -f $CW_LOGFILES
          fi
    }
    case "$1" in
    start)    
            clear_file
            log_daemon_msg "Starting $CAMSERVER"
            start-stop-daemon --start --quiet --exe $DAEMON --startas $START
            log_end_msg $?
        ;;
    stop)    
            log_daemon_msg "Stopping $CAMSERVER"
            start-stop-daemon --stop --quiet --exe $DAEMON
            log_end_msg $?
            ;;
    restart)
            log_daemon_msg "Restarting $CAMSERVER" 
            start-stop-daemon --stop --retry 5 --quiet --exe $DAEMON
            clear_file
            start-stop-daemon --start --quiet --exe $DAEMON --startas $START
            log_end_msg $?
            ;;
    status)
        status_of_proc -p $PIDFILE $DAEMON $BINARY && exit 0 || exit $?
            ;;
    *)    
            log_action_msg "Usage: /etc/init.d/oscam {start|stop|restart|status}"
            exit 2
            ;;
    esac
    exit 0
    
    Liegt unter /etc/init.d als oscam
    Kann man ganz einfach per Webmin zum Cronjob machen.
     
    #8
    mzerok gefällt das.
  10. atomrofler
    Offline

    atomrofler Ist oft hier

    Registriert:
    30. Mai 2010
    Beiträge:
    109
    Zustimmungen:
    2
    Punkte für Erfolge:
    18
    AW: Restart des Webif nutzen für Cronjob ...

    Hier noch eins. In den Kommentaren ist passend ein cronjob, der alle 15 Minuten checkt und ggf. oscam nachstartet. Nicht über das Verzeichnis wundern, läuft auf einem NAS.

    Code:
    #!/bin/bash
    
    # Startscript fuer oscam
    #
    # Usage: start|stop|restart|status
    #
    # Erklaerung:
    # Variable "port" kann mehrere Ports enthalten, z.B. port="1234 7895 3456" wenn mehrere cams activ sind
    # Variable oscambin auf die Startdatei anpassen, z.B. oscambin="oscam-svn4559-arm-coolstream"
    # Variable oscampath auf das Verzeichnis anpasssen, wo alle OSCam Daten liegen, z.B. oscampath="/mnt/HDA_ROOT/emu"
    # Lib libnxp.so muss sich im etc Verzeichnis von OSCam befinden, wird beim start automatisch eingebunden
    #
    # Ein monitor per cron, ob der Dienst noch geht, sieht bei mir so aus:
    #
    # crontab -e
    # 0,15,30,45 * * * * /mnt/HDA_ROOT/emu/oscam.sh status | grep 'Listener';if [ "$?" -ne "0" ];then /mnt/HDA_ROOT/emu/oscam.sh restart;date >> /mnt/HDA_ROOT/emu/log/mon.log;fi
    #
    #
    # Variable Debuglevel definieren:
    # 0 = no debugging (default)
    # 1 = detailed error messages
    # 2 = ATR parsing info, ECM, EMM and CW dumps
    # 4 = traffic from/to the reader
    # 8 = traffic from/to the clients
    # 16 = traffic to the reader-device on IFD layer
    # 32 = traffic to the reader-device on I/O layer
    # 64 = EMM logging
    # 255 = debug all
    
    
    oscampath="/mnt/HDA_ROOT/emu"
    oscambin="oscam-svn4559-arm-coolstream"
    port="52767"
    monlog="/$oscampath/mon.log"
    debuglevel="d0"
    
    libfile="$oscampath/etc/libnxp.so"
    monlog="/$oscampath/mon.log"
    
    
    echo 2 > /proc/cpu/alignment
    
    _pruefe()
    {
    if [ "$?" -ne "0" ]
            then
                    echo -e "RC: 1, abbruch"
                    exit 1
    fi
    }
    
    _start()
    {
    ldsoconf=$(cat /etc/ld.so.conf | grep -v '#' | head -n 1)
    cp $libfile $ldsoconf
    _pruefe
    /sbin/ldconfig
    _pruefe
    $oscampath/$oscambin -$debuglevel -c /mnt/HDA_ROOT/emu/etc &
    _pruefe
    }
    
    _stop()
    {
    ps aux | grep '$oscampath/$oscambin' | grep -v 'grep' 2>&1 > /dev/null
    if [ "$?" == "0" ]
            then
                    killall -15 $oscambin 2>&1 > /dev/null
                    sleep 1
    fi
    
    while (ps aux | grep '$oscampath/$oscambin' | grep -v 'grep' 2>&1 > /dev/null)
    do
            killall -9 $oscambin 2> /dev/null 1> /dev/null
            sleep 2
            _pruefe
    done
    }
    
    _status()
    {
    rc=0
    ps aux | grep '$oscampath/$oscambin' | grep -v 'grep'  2>&1 > /dev/null
    if [ "$?" -ne "0" ]
            then
                    echo "`date +[%y-%m-%d__%H:%M:%S]` - Dienst inaktiv" | tee -a $monlog
                    exit 1
            else
                    echo -e "`date +[%y-%m-%d__%H:%M:%S]` - Dienst aktiv"
                    netstat -a 1> $oscampath/netstat.tmp 2> /dev/null
                    for p in $port
                    do
                            grep 'LISTEN' $oscampath/netstat.tmp | grep '$p' 2>&1 > /dev/null
                            if [ "$?" -ne "0" ]
                                    then
                                            echo -e "`date +[%y-%m-%d__%H:%M:%S]` - Listener $p ist zu!" | tee -a $monlog
                                            rc=1
                                    else
                                            echo -e "`date +[%y-%m-%d__%H:%M:%S]` - Listener $p offen" | tee -a $monlog
                                            rc=0
                            fi
                    done
                    rm $oscampath/netstat.tmp
    fi
    if [ "$rc" -ne "0" ]
            then
                    exit 1
    fi
    }
    
    case "$1" in
            start)
                    _status | grep 'Dienst inaktiv' 2>&1 > /dev/null
                    if [ "$?" -eq "0" ]
                            then
                                    _start
                                    sleep 1
                                    _status
                            else
                                    echo "Dienst bereits gestartet"
                                    exit 0
                    fi
            ;;
            stop)
                    _stop
                    _status
            ;;
            restart)
                    _stop
                    _status | grep 'Dienst inaktiv' 2>&1 > /dev/null
                    if [ "$?" -eq "0" ]
                            then
                                    _start
                                    _status
                            else
                                    exit 1
                    fi
            ;;
            status)
                    _status
            ;;
            *)
                    echo "Usage: start|stop|restart|status"
                    exit 1
            ;;
    esac
    
    
     
    #9
  11. derdaa
    Offline

    derdaa Freak

    Registriert:
    29. Dezember 2008
    Beiträge:
    278
    Zustimmungen:
    58
    Punkte für Erfolge:
    28
    bedanke mich für eure hilfe ... ich habe es nun ans laufen bekommen ...
     
    #10

Diese Seite empfehlen