mxer
Boardveteran
- Registriert
- 20. September 2008
- Beiträge
- 14.005
- Reaktionspunkte
- 5.097
- Punkte
- 113
Habe da mal wieder was gebastelt, weil mich das interessiert hat, ob es so machbar ist.
Hintergrund: steigt ein einzelner Reader aus, bemerkt das der WD nicht und somit passiert nix.
Hier kann man festlegen, welcher Reader abgefragt werden soll und ihn auch einzeln rebooten.
Grundlage ist ein aufgebohrtes Script, welches ich anderweitig schonmal in Verwendung hatte.
Es war dafür gedacht, per Cron auch andere Zustände anzufragen, die der WD nicht abdeckt.
Der WD fragt nämlich nur ab, ob oscan läuft.
Er fragt nicht ab, ob irgendwelche Error oder Timeout oder andere Fehler im Log stehen.
Somit kann man das Script umstricken und für die Erkennung unterschiedlichster Fehler einsetzen.
Vorraussetzung ist nicht unbedingt IPC, geht auch ohne das. Aber es muß ein Log gespeichert werden.
Standart ist nämlich nur stdout.
Rot markiert habe ich das, wo die Abfrage auf den Fehler kommt.
Blau ist anzupassen, weil die Pfade/ Namen unterschiedlich sein können.
Soweit ist es nur das bekannte Script.
Nun kommt die Änderung, die den einzelnen Reader abfragt und rebootet, wenn dort ein Fehler auftritt.
Damit das aber funktioniert, darf kein Username in httpuser eingetragen sein, httppass muß eingetragen sein.
Warum das so ist, weiß ich noch nicht. Ist ein Username drin, kommt Acces denied.
Unten ist die einzige Kombination, welche bei mir funktioniert hat.
Nun kann man noch eine extra Datei anlegen, wo solche Reboots eingetragen werden.
Das wäre der grüne Teil, wo der Timestamp in diese Datei geschrieben wird.
Wenn jemand Fehler findet oder Fragen hat, bitte melden.
Läuft auf meinem Pogo sauber und funktioniert.
Hintergrund: steigt ein einzelner Reader aus, bemerkt das der WD nicht und somit passiert nix.
Hier kann man festlegen, welcher Reader abgefragt werden soll und ihn auch einzeln rebooten.
Grundlage ist ein aufgebohrtes Script, welches ich anderweitig schonmal in Verwendung hatte.
Es war dafür gedacht, per Cron auch andere Zustände anzufragen, die der WD nicht abdeckt.
Der WD fragt nämlich nur ab, ob oscan läuft.
Er fragt nicht ab, ob irgendwelche Error oder Timeout oder andere Fehler im Log stehen.
Somit kann man das Script umstricken und für die Erkennung unterschiedlichster Fehler einsetzen.
Vorraussetzung ist nicht unbedingt IPC, geht auch ohne das. Aber es muß ein Log gespeichert werden.
Standart ist nämlich nur stdout.
Rot markiert habe ich das, wo die Abfrage auf den Fehler kommt.
Blau ist anzupassen, weil die Pfade/ Namen unterschiedlich sein können.
Code:
#!/bin/sh
if grep -w -n [COLOR=#ff0000]added[/COLOR] [COLOR=#0000ff]/var/log/ipc/OScam.log[/COLOR]
then ps -ef | grep "[COLOR=#0000ff]oscam.armel[/COLOR]" | awk '{print $2}' | xargs kill
wait 50
[COLOR=#0000ff]/var/emu/oscam/oscam.armel [/COLOR]-b
fi
Soweit ist es nur das bekannte Script.
Nun kommt die Änderung, die den einzelnen Reader abfragt und rebootet, wenn dort ein Fehler auftritt.
Damit das aber funktioniert, darf kein Username in httpuser eingetragen sein, httppass muß eingetragen sein.
Warum das so ist, weiß ich noch nicht. Ist ein Username drin, kommt Acces denied.
Unten ist die einzige Kombination, welche bei mir funktioniert hat.
Code:
if grep -w -n [COLOR=#ff0000]getting [/COLOR][COLOR=#0000ff]/var/log/ipc/OScam.log[/COLOR]
then wget --password= '[COLOR=#0000ff]mypass[/COLOR]' --post-data 'action=restart&label=[COLOR=#ff0000]hd02[/COLOR]' [URL]https://192.168.78.39:16002/status.html[/URL]
wait 50
[COLOR=#006400]date >> /var/log/errors.txt[/COLOR]
[COLOR=#0000ff]# /var/emu/oscam/oscam.armel [/COLOR]-b
fi
Nun kann man noch eine extra Datei anlegen, wo solche Reboots eingetragen werden.
Das wäre der grüne Teil, wo der Timestamp in diese Datei geschrieben wird.
Wenn jemand Fehler findet oder Fragen hat, bitte melden.
Läuft auf meinem Pogo sauber und funktioniert.
Zuletzt bearbeitet: