Seite 3 von 5

Re: Script: OScam "überwachung"

Verfasst: Di 17. Apr 2012, 09:12
von MangaMango
Hab ich mich falsch ausgedrückt meinte natürlich was zwischen den "" steht.

Code: Alles auswählen

    #!/bin/bash
    #
    #### CONFIG - START

    ## OScam WebIf with SSL? [1=yes , 0=no]
    OSssl="0"

    ## /path/to/oscam.conf?
    OScfg="/var/etc/oscam.conf"

    ## Cards to monitor
    CARD[1]="sky"
    CARD[2]=""
    CARD[3]=""
    CARD[4]=""

    ## OScam's Logfile?
    OSlog="/var/log/ipc/OScam.log"

    ## monitoring Error message
    OSerror="ERROR Phoenix_GetStatus: ioctl error in card detection for %CARDNAME%"

    ## reporting logfile for this script?
    OStolog="/var/log/ipc/OScam.error"

    #### CONFIG - END


    OSip="127.0.0.1"
    [ "$OSssl" = 1 ] && URL="https://" || URL="http://"

    # Simple URL encoding
    proc_url_encode() {
       out=${1//%/%25}; out=${out//\{/%7B}; out=${out//\}/%7D}; out=${out//|/%7C};
       out=${out//\\/%5C}; out=${out//^/%5E}; out=${out//~/%7E}; out=${out//[/%5B};
       out=${out//]/%5D}; out=${out//\`/%60}; out=${out//#/%23}; out=${out//>/%3E};
       out=${out//\$/%24}; out=${out//&/%26}; out=${out//+/%2B}; out=${out//,/%2C};
       out=${out//\//%2F}; out=${out//:/%3A}; out=${out//;/%3B}; out=${out//=/%3B};
       out=${out//\?/%3F}; out=${out// /%20}; out=${out//</%3C};
       echo $out
    }

    proc_parse_cfg() {
       i=0
       while read line; do
          line=$(echo $line | sed -e 's/ //g')
          if [[ "$line" =~ ^[^#]*= ]]; then
             cfg_name[$i]=$(echo $line | cut -d'=' -f 1)
             cfg_value[$i]=$(echo $line | cut -d'=' -f 2-)
             ((++i))
          fi
       done < $1
    }

    get_cfg_value() {
       i=0
       for name in ${cfg_name[*]}; do
          [ "$1" = "$name" ] && echo "${cfg_value[$i]}" && break
          ((++i))
       done
    }

    proc_get_infos() {
       proc_parse_cfg $OScfg
       WEBPORT=$(get_cfg_value httpport)
       [ -z "$WEBPORT" ] && "ERROR: WebIf isnt enabled! Abort!" && exit 1
       USERNAME=$(get_cfg_value httpuser)
       if [ ! -z "$USERNAME" ]; then
          PASSWORD=$(get_cfg_value httppwd)
          URL="$URL"`proc_url_encode "${USERNAME}"`":"`proc_url_encode "${PASSWORD}"`"@${OSip}:${WEBPORT}"
       else
          URL="${URL}$OSip:$WEBPORT"
       fi
    }

    proc_get_infos

    for card in ${CARD[*]}; do
       ERRORmsg=${OSerror//%CARDNAME%/$card}
       founds=`tail -10 $OSlog | grep "$ERRORmsg" | wc -l`
       if [ $founds >= 1 ]; then
          echo "`date +%d-%b-%Y` `date +%H:%M:%S`: $card Card lost" >> $OStolog
          wget --spider "$URL/readers.html?label=${card}&action=disable"
          wget --spider "$URL/readers.html?label=${card}&action=enable"
       fi
    done

    exit 0

Re: Script: OScam "überwachung"

Verfasst: Di 17. Apr 2012, 09:16
von feissmaik
CARD[2]="" ist ungültig - die, die du nicht brauchst, auskommentieren oder weg löschen also 2 bis 4

Re: Script: OScam "überwachung"

Verfasst: Di 17. Apr 2012, 09:29
von MangaMango
Hab die Cards 2-4 auskommentiert, der Fehler bleibt der gleiche.

Re: Script: OScam "überwachung"

Verfasst: Di 17. Apr 2012, 09:34
von feissmaik
hm...

"Zeile 81: [: 0: Einstelliger (unärer) Operator erwartet."

Zeile 81:

Code: Alles auswählen

   if [ $founds >= 1 ]; then
Zeile 80:

Code: Alles auswählen

   founds=`tail -10 $OSlog | grep "$ERRORmsg" | wc -l`
dh er holt sich die letzten 10 zeilen aus OSlog und durch "wc -l" zählt er die gefunden zeilen
änder mal das "tail -10" in "tail -9" ... dann dürfte er maximal 9 zeilen finden und dann wär der Operator auch 100% einstellig

/EDIT: oder änder

Code: Alles auswählen

   if [ $founds >= 1 ]; then
in

Code: Alles auswählen

   if [ $founds -gt 0 ]; then

Re: Script: OScam "überwachung"

Verfasst: Di 17. Apr 2012, 09:51
von MangaMango
/var/emu/script/check.reader: Zeile 81: [: 0: Einstelliger (unärer) Operator erwartet.

Der Fehler kommt weiterhin. Schade eigentlich gutes Script. Funktionierts halt bei mir nicht.

//EDIT: Mit -gt 0 funktioniert es ohne Probleme wenn ich es aufrufe. Dann mal nen Crontab machen.

Vielen Dank. ;)

Re: Script: OScam "überwachung"

Verfasst: Di 17. Apr 2012, 12:45
von MangaMango
Bekomme im Syslog aufeinmal folgenden Fehler:
Apr 17 13:38:01 /USR/SBIN/CRON[20881]: (CRON) error (grandchild #20883 failed with exit status 2)
Kommt nach dem Cronjob von dem Script.

Re: Script: OScam "überwachung"

Verfasst: Di 17. Apr 2012, 14:07
von feissmaik
wie hast du das denn in i jobs eingetragen?

Re: Script: OScam "überwachung"

Verfasst: Di 17. Apr 2012, 14:38
von MangaMango
* * * * * root /var/emu/script/check.reader

Re: Script: OScam "überwachung"

Verfasst: Di 17. Apr 2012, 15:40
von feissmaik
mmh und wenn du das script manuell ausführst, gehts?

sonst leite die ausgabe doch mal in eine datei um, dann kannste ggf herrausfinden worans hapert:

Code: Alles auswählen

* * * * * root /var/emu/script/check.reader >/var/log/check.reader.log 2>&1

Re: Script: OScam "überwachung"

Verfasst: Di 17. Apr 2012, 16:14
von MangaMango
Wenn ich es Manuell ausführe läuft es denke ich durch. Also es kommt kein Fehler. Habe es auch schon getestet und in den OScam.log den Fehler geschrieben. Dann hat es auch reagiert und wollte den Reader neu einbinden.

In dem Jetzigen Log:

Code: Alles auswählen

var/emu/script/check.reader: 12: CARD[1]=sky: not found
/var/emu/script/check.reader: 76: [[: not found
/var/emu/script/check.reader: 76: [[: not found
/var/emu/script/check.reader: 76: [[: not found
/var/emu/script/check.reader: 76: [[: not found
/var/emu/script/check.reader: 76: [[: not found
/var/emu/script/check.reader: 76: [[: not found
/var/emu/script/check.reader: 76: [[: not found
/var/emu/script/check.reader: 76: [[: not found
/var/emu/script/check.reader: 76: [[: not found
/var/emu/script/check.reader: 76: [[: not found
/var/emu/script/check.reader: 76: [[: not found
/var/emu/script/check.reader: 76: [[: not found
/var/emu/script/check.reader: 76: [[: not found
/var/emu/script/check.reader: 76: [[: not found
/var/emu/script/check.reader: 76: [[: not found
/var/emu/script/check.reader: 76: [[: not found
/var/emu/script/check.reader: 76: [[: not found
/var/emu/script/check.reader: 76: [[: not found
/var/emu/script/check.reader: 76: [[: not found
/var/emu/script/check.reader: 76: [[: not found
/var/emu/script/check.reader: 76: [[: not found
/var/emu/script/check.reader: 76: [[: not found
/var/emu/script/check.reader: 76: [[: not found
/var/emu/script/check.reader: 76: [[: not found
/var/emu/script/check.reader: 76: [[: not found
/var/emu/script/check.reader: 76: [[: not found
/var/emu/script/check.reader: 76: [[: not found
/var/emu/script/check.reader: 76: [[: not found
/var/emu/script/check.reader: 76: [[: not found
/var/emu/script/check.reader: 76: [[: not found
/var/emu/script/check.reader: 76: [[: not found
/var/emu/script/check.reader: 76: Bad substitution
/var/emu/script/check.reader: 76: ERROR: WebIf isnt enabled! Abort!: not found
/var/emu/script/check.reader: 76: Bad substitution
/var/emu/script/check.reader: 86: Bad substitution