AW: Cron + watchdog einrichten, 7020HD und Newnigma
Werde ich morgen mal ausprobieren, nachdem ich meins getestet habe.
Wäre das für mich angepasst dann so in Ordnung?
#!/bin/sh
if grep -w -n timeout /tmp/oscam.log
then killall -9 /usr/bin/oscam
wait 50
# echo "reboot oscam"
/usr/bin/oscam
# else echo "good"
fi
Wäre nicht eine Kombination aus beiden Scripten noch besser? Das eine prüft, ob in der log timeout steht, das andere prüft, ob es noch läuft?
Edit:
Ich konnte es gerade mal testen. Da ich nicht weiß wie ich mit der FB Oscam stoppen kann, bin ich über telnet gegangen.
killall -9 oscam -> Bild weg und oscam in ps auch nicht mehr drin.
Leider hat das Script Oscam nicht neu gestartet, sondern mir nur wieder den Text ausgegeben. Komisch...
root@dm7020hd:~# sh /usr/script/watchoscam.sh
Oscam working
AW: Cron + watchdog einrichten, 7020HD und Newnigma
Ich hab jetzt beide Scipte nochmal getestet. Und noch mit beiden Probleme.
1.
#!/bin/sh
if ps -e |grep -v grep |grep -c oscam >/dev/null
then echo "Oscam working"
else /usr/bin/oscam -b
fi
Dieses Script startet Oscam nicht neu, es gibt nur "Oscam working" aus, obwohl Oscam vorher mit killall beendet worden is und nicht arbeitet.
Wo liegt der Fehler?
2.
#!/bin/sh
if grep -w -n timeout /tmp/oscam.log
then killall -9 /usr/bin/oscam
wait 50
# echo "reboot oscam"
/usr/bin/oscam
# else echo "good"
fi
Bei diesem Script bekomme ich folgende Fehlermeldung:
Options:
-H Prefix output lines with filename where match was found
-h Suppress the prefixing filename on output
-r Recurse subdirectories
-i Ignore case distinctions
-l List names of files that match
-L List names of files that do not match
-n Print line number with output lines
-q Quiet. Return 0 if PATTERN is found, 1 otherwise
-v Select non-matching lines
-s Suppress file open/read error messages
-c Only print count of matching lines
-o Show only the part of a line that matches PATTERN
-m MAX Match up to MAX times per file
-F PATTERN is a set of newline-separated strings
-E PATTERN is an extended regular expression
-e PTRN Pattern to match
-f FILE Read pattern from file
-A Print NUM lines of trailing context
-B Print NUM lines of leading context
-C Print NUM lines of output context
Anscheinend mag er diese -w nicht. Was soll ich sattdessen nehmen, um den Sinn des Scriptes zu erfüllen?
Was ich jedoch komisch finde, dass dies bei dir funktioniert, aber hier nicht. Andere Version?
3. Sache
Da ich Newnigma nutze, bekomme ich bei der blauen Taste nicht das hier angezeigt:
Per FB: blaue Taste - CI-Softcam, dort Common Interface wählen und speichern.
Damit ist oscam aus dem Rennen und der WD müßte das neu starten.
Ne Idee, wie ich einen timeout Ausfall bei Newnigma generieren kann?
AW: Cron + watchdog einrichten, 7020HD und Newnigma
Timeout per Karte ziehen schon probiert?
Habe das experimental OE2.0 von DMM mit GP³ drauf.
Da geht die Abfrage mit dem -w.
Das mit dem -n erlaubt, genau die Zeile ( mit Datum etc. ) zu lokalisieren.
Macht sich bei großem Log-File einfacher.
Das ist von meiner Dream: BusyBox v1.19.4 ( 2013-01-15 20:33:00 UTC )
Auszug:
Option
Erläuterung
-i
ignoriert Groß/Kleinschreibung
-w
Das gesuchte Wort muss alleine stehen. z.B. Wir suchen "test", dann würde mit -w "tester" nicht gefunden werden.
-n
Gibt die Zeilennummer aus, auf der der Ausdruck gefunden wurde.
-l
Wenn du in mehreren Dateien suchst, dann gibt -l nur die Dateinamen an in denen der Ausdruck gefunden wurde.
-x
Der Ausdruck muss der gesamten Zeile entsprechen, z.b. du suchst das Wort "test", wenn nun in einer Zeile "test 123 frau" steht, dann würde diese Zeile nicht ausgegeben werden, da test nicht alleine steht.
AW: Cron + watchdog einrichten, 7020HD und Newnigma
Code:
#!/bin/sh
# global variables
MAXLOGLINES=100
LOGFILE=/tmp/oscam.check
### get time
# function to get the correct system time in an indivudual format when called - output: yyyy-mm-dd@hh:mm:ss
now () {
date +%Y-%m-%d@%H:%M:%S
}
### logfile check
# function: if number of lines in logfile >= $MAXLOGLINES then move logfile
logfile_check () {
if [ $(wc -l $LOGFILE | awk '{print $1}') -ge $MAXLOGLINES ] ; then
mv -f $LOGFILE $LOGFILE.old
echo "$(now) - last $MAXLOGLINES lines of $LOGFILE moved to $LOGFILE.old" > $LOGFILE
fi
}
# if logfile exists, check number of lines with above function - if not: skip
[ -e $LOGFILE ] && logfile_check
### oscam check
# if result of "ps aux ...." = 0, oscam ist NOT running, else running
if [ $(ps aux | grep -v grep | grep -c "/usr/bin/oscam") = 0 ] ; then
echo "$(now) - oscam not running - restarting oscam" >> $LOGFILE
# alternative: write status in both files
# echo "$(now) - oscam not running - restarting oscam" >> /tmp/oscam.restarts
# echo "$(now) - oscam not running - restarting oscam" > /tmp/oscam.status
# /usr/bin/oscam &
# may be better, because all oscam /tmp files created on start from NN2 start/stop script will cleaned/deleted:
/usr/script/oscam.emu restart
# or 'camdctrl restart' if oscam only is used
else
echo "$(now) - oscam is running ">> $LOGFILE
# alternative
# echo "$(now) - oscam is running " > /tmp/oscam.status
fi
exit
AW: Cron + watchdog einrichten, 7020HD und Newnigma
@mxer:
Da scheint bei meinem Newnigma 3.3.2 ne alte Busybox Version drauf zu sein. Ob ich die einzeln updaten kann, weiß ich nicht.
@hwmmc:
Ich habe dein Script mal probiert und folgende Fehlermeldung bekommen:
root@dm7020hd:~# sh /usr/script/watchoscam.sh
: not found/watchoscam.sh: line 5:
: not found/watchoscam.sh: line 6:
2013-04-14@15:26:22
: not found/watchoscam.sh: line 11: }
: not found/watchoscam.sh: line 12:
: not found/watchoscam.sh: line 13:
/usr/script/watchoscam.sh: line 44: syntax error: unexpected end of file ing "then")
Nachdem ich die ganzen Kommentare mal entfernt habe und echo direkt hinter else geschrieben habe, war der Fehler immer noch da.
AW: Cron + watchdog einrichten, 7020HD und Newnigma
Die Busybox kann nicht einfach ausgetauscht werden, geht nur über neuflashen des Images.
Muß aber ein Image mit neuerer Busybox sein, sonst treten wir auf der Stelle.
AW: Cron + watchdog einrichten, 7020HD und Newnigma
Ich hatte bis jetzt einmal einen Absturz von Oscam, seit dem lasse ich das immer um 4:00 neu starten.
Diesen Neustart wollte ich am liebsten mit einem watchdog ersetzen.
Sonst bin ich super zufrieden mit der box und dem image und möchte aktuell kein neues aufspielen.
Hat denn keiner im Forum das selbe Problem wie ich mit Newnigma?
root@dm7020hd:~# sh /usr/script/watchoscam.sh
: not found/watchoscam.sh: line 5:
: not found/watchoscam.sh: line 6:
2013-04-14@15:26:22
: not found/watchoscam.sh: line 11: }
: not found/watchoscam.sh: line 12:
: not found/watchoscam.sh: line 13:
/usr/script/watchoscam.sh: line 44: syntax error: unexpected end of file ing "then")
Dann machst du etwas verlehrt! Das Script geht bei mit einwand frei mit Newnigma2 3.3.2.
Ich habe nur das oscam.emu Script parallel als oscam.sh im Script Ordner nochmal
und im Watchdog Script in Zeile 36 sreht es dann so /usr/script/oscam.sh restart drin.
Starte das Script mal mit Cron und setze die Rechte auf 755 der Scripte.
... z.B. die Zeilen 5 und 6 sind Leerzeilen (Platzhalter).
Oder teste es so im Telnet ... ...:~# /usr/script/watchoscam.sh
AW: Cron + watchdog einrichten, 7020HD und Newnigma
Ich wüsste auch gerne, was ich verkehrt mache...
Ich habe die Rechte auf 755 und es im Script Ordner liegen. Es wird per Telnet gestartet und es kommt der aufgeführte Fehler.
Zum bearbeiten nutze ich Notepad++.