rolu2
IPC Anfänger
Beiträge: 70 Registriert: Sa 21. Mai 2011, 16:05
Kontaktdaten:
Beitrag
von rolu2 » Sa 15. Okt 2011, 16:02
Kann mir jemand erklären, wo der Unterschied ist in der cccam-watchdog.sh. Die Orginal im IPC drin ist
Code: Alles auswählen
#!/bin/bash
# IPC - CCcam-Watchdog
#
. /var/emu/script/functions.sh
readipccfg
[ -z $CCNAME ] && clear && echo -e "\033[1;31mVariablen Konfigurationsfehler!\033[0m" && exit 1
[ -z $CCVERSION ] && clear && echo -e "\033[1;31mVariablen Konfigurationsfehler!\033[0m" && exit 1
[ -z "$TIMESTAMP2" ] && clear && echo -e "\033[1;31mVariablen Konfigurationsfehler!\033[0m" && exit 1
[ -z $CAMLOGS ] && clear && echo -e "\033[1;31mVariablen Konfigurationsfehler!\033[0m" && exit 1
[ -z $CRASHMAIL ] && clear && echo -e "\033[1;31mVariablen Konfigurationsfehler!\033[0m" && exit 1
SUBJECT="$CCNAME Watchdog !"
MESSAGE1="$CCNAME wurde auf `hostname -f` vom Watchdog Überwachungsscript neu gestartet."
MESSAGE2="$CCNAME ist auf `hostname -f` mehrfach gestartet, Konfiguration scheint fehlerhaft zu sein!"
#CCcam gestart ?
PID="$(pgrep -x $CCVERSION)"
if [[ ! -z $PID ]] ; then
echo "$TIMESTAMP2 Watchdog - CCcam Server laeuft"
else
cccam start
echo "$TIMESTAMP2 Watchdog - CCcam wurde neu gestartet" >> $CAMLOGS/CCcam-watchdog.log
#readipccfg
[ $CRASHMAIL == 1 ] && mailsend "$SUBJECT" "$MESSAGE1"
fi
#CCcam mehrfach gestartet ?
ANZAHL="$(pgrep -c $CCVERSION)"
if [ $ANZAHL -gt 1 ] ; then
[ $CRASHMAIL == 1 ] && mailsend "$SUBJECT" "$MESSAGE2"
fi
exit 0
und der hier
Code: Alles auswählen
#!/bin/bash
# IPC - CCcam-Watchdog
# v2
# Enable responding-check ? [1/0]
RESPONDCHECK="1"
# delay interval for lines sent (for responding check) [default: <empty>]
# NOTE: DON'T edit unless you know what you are doing!
# NOTE: if your CCcam-server runs on an 1xChip dbox its possible that the
# respond-check tooks too long for this script. Than you need to set
# this to '-i 3' or '-i 4'... it waits longer befor quit and fail...
NCINTERVAL="-i 1"
CCCAMIP="127.0.0.1"
# -------------------------------------------------------------- #
# >>> >> > DO NOT MESS WiTH ANYTHiNG BELOW THiS LiNE! < << <<< #
# -------------------------------------------------------------- #
. /var/emu/script/functions.sh
readipccfg
[ -z $CCNAME ] && clear && echo -e "\033[1;31mVariablen Konfigurationsfehler!\033[0m" && exit 1
[ -z $CCVERSION ] && clear && echo -e "\033[1;31mVariablen Konfigurationsfehler!\033[0m" && exit 1
[ -z "$TIMESTAMP2" ] && clear && echo -e "\033[1;31mVariablen Konfigurationsfehler!\033[0m" && exit 1
[ -z $CAMLOGS ] && clear && echo -e "\033[1;31mVariablen Konfigurationsfehler!\033[0m" && exit 1
[ -z $CRASHMAIL ] && clear && echo -e "\033[1;31mVariablen Konfigurationsfehler!\033[0m" && exit 1
[ -z $RESPONDCHECK ] && clear && echo -e "\033[1;31mVariablen Konfigurationsfehler!\033[0m" && exit 1
[ -z $CCCFG ] && clear && echo -e "\033[1;31mVariablen Konfigurationsfehler!\033[0m" && exit 1
CHECKFILE="/tmp/cccamtest.log"
WATCHDOGLOCK="/tmp/.CCcamWatchdog.lock"
SUBJECT="$CCNAME Watchdog!"
MESSAGE1="$CCNAME wurde auf `hostname -f` vom Watchdog Überwachungsscript neu gestartet"
MESSAGE2="$CCNAME ist auf `hostname -f` mehrfach gestartet, Konfiguration scheint fehlerhaft zu sein!"
proc_SendEMail() {
msg=$1
[ $CRASHMAIL != 1 ] && return
mailsend "$SUBJECT" "$msg"
echo "CrashEmail verschickt.."
}
# This method checks if CCcam is still responding like it should
check_respond() {
proc_Get_CCcamcfg
echo "$CCNAME process is present, now checking if its frozen.."
echo info|nc $NCINTERVAL $CCCAMIP $CCTPORT >$CHECKFILE
if [ "$?" != "0" ]; then
echo "ERROR while connecting to $CCNAME!"
proc_SendEMail "$CCNAME: Fehler beim verbinden für RespondCheck auf `hostname -f`!"
proc_exit
fi
CHECKED=$(ls -s $CHECKFILE)
if [ "$CHECKED" = "0" ]; then
echo " BAD - $CCNAME is frozen, restarting: $CCVERSION"
cccam restart
MESSAGE1+=" weil es nicht mehr reagierte!"
proc_SendEMail "$MESSAGE1"
else
echo " OK - $CCNAME is responding like it should!"
# FixMe: output responding to shell if its triggered with: -v
if [ "$1" = "-v" ]; then
echo "$CCNAME responding:"
echo $(cat $CHECKFILE)
fi
fi
}
# read CCcam.cfg
proc_Get_CCcamcfg() {
CCTELNET=$(grep -i "ALLOW TELNETINFO" $CCCFG | cut -d ":" -f2 | sed -e 's/ //g' | sed -e 's/\r//g' | awk {'print $1'})
CCTPORT=$(grep -i "TELNETINFO LISTEN PORT" $CCCFG | cut -d ":" -f2 | sed -e 's/ //g' | sed -e 's/\r//g')
CCTUSER=$(grep -i "TELNETINFO USERNAME" $CCCFG | cut -d ":" -f2 | sed -e 's/ //g' | sed -e 's/\r//g')
CCTPASS=$(grep -i "TELNETINFO PASSWORD" $CCCFG | cut -d ":" -f2 | sed -e 's/ //g' | sed -e 's/\r//g')
[ "$CCTELNET" != "yes" ] && clear && echo -e "\033[1;31mKonfigurationsfehler! ALLOW TELNETINFO muss auf \"yes\" gestellt werden\033[0m" && proc_exit
[ -z "$CCTPORT" -a "$CCTELNET" == "yes" ] && CCTPORT="16000"
}
proc_exit() {
rm -f $WATCHDOGLOCK
exit 0
}
## Script darf nur einmal gleichzeitig ausfuehren werden (innerhalb 1min)
if [ -e "$WATCHDOGLOCK" ]; then
if [ "`find \"$WATCHDOGLOCK\" -type f -mmin -1`" ]; then
echo "Lockfile $WATCHDOGLOCK exists and is not 1 minutes old yet. Quitting!"
exit 0
else
echo "Lockfile exists, but its older then 1 minutes. Removing lockfile."
touch "$WATCHDOGLOCK"
fi
else
touch "$WATCHDOGLOCK"
fi
#CCcam gestart?
PID="$(pgrep -x $CCVERSION)"
if [[ ! -z $PID ]] ; then
echo "$TIMESTAMP2 Watchdog - CCcam Server laeuft"
[ $RESPONDCHECK == 1 ] && check_respond
else
cccam start
echo "$TIMESTAMP2 Watchdog - CCcam wurde neu gestartet" >> $CAMLOGS/CCcam-watchdog.log
proc_SendEMail "$MESSAGE1"
fi
#CCcam mehrfach gestartet?
ANZAHL="$(pgrep -c $CCVERSION)"
if [ $ANZAHL -gt 1 ] ; then
proc_SendEMail "$MESSAGE2"
fi
proc_exit
die ist meine ich auch von hier
gruß rolu2
feissmaik
Entwickler Team
Beiträge: 2576 Registriert: So 17. Apr 2011, 11:39
Been thanked: 1 time
Kontaktdaten:
Beitrag
von feissmaik » Sa 15. Okt 2011, 17:24
das erste ist die, die bei IPC standardmässig dabei ist und die 2. ist eine veränderte version von mir mit respons check wie sie requested wurde... das standard script guckt nur ob der prozess noch da ist, meine veränderung guckt aber auch ob es noch reagiert - über telnet....
Du musst nicht kämpfen um zu siegen
rolu2
IPC Anfänger
Beiträge: 70 Registriert: Sa 21. Mai 2011, 16:05
Kontaktdaten:
Beitrag
von rolu2 » So 16. Okt 2011, 12:51
Kann man deine 1zu1 übernehmen oder muss da noch etwas angepasst werden
gruß rolu2
feissmaik
Entwickler Team
Beiträge: 2576 Registriert: So 17. Apr 2011, 11:39
Been thanked: 1 time
Kontaktdaten:
Beitrag
von feissmaik » So 16. Okt 2011, 17:36
normalerweise nicht aber generell kann man sagen das; wenn was einzustellen ist, das am anfang des scripts steht
um den respondcheck nutzen zu können muss aber natürlich "TELNETINFO LISTEN PORT" gesetzt und "TELNETINFO USERNAME" sowie "TELNETINFO PASSWORD" in der CCcam.cfg ebenfals gesetzt aber leer gelassen werden...
allerdings kann man auch den standard watchdog bestehen lassen und stattdessen zusätzlich
dieses script einrichten, weil den WEBINFO krams hat man meistens sowieso schon an...
Du musst nicht kämpfen um zu siegen
feissmaik
Entwickler Team
Beiträge: 2576 Registriert: So 17. Apr 2011, 11:39
Been thanked: 1 time
Kontaktdaten:
Beitrag
von feissmaik » So 13. Nov 2011, 16:49
...Ich hatte das Script schon früher umgebaut aber leider jetzt erst auch hier auf dem OnlineServer aktualisiert...
Jetzt kann man wieder auf TELNET verzichten - stattdessen wird der WEBINFO port genutzt um zu prüfen ob CCcam noch reagiert
->
wget -O/var/emu/script/cccam-watchdog.sh ipc.pebkac.at/ipc/scripts/cccam-watchdog.sh && chmod +x /var/emu/script/cccam-watchdog.sh
Code: Alles auswählen
#!/bin/bash
# IPC - CCcam-Watchdog
# v3
# Enable responding-check ? [1/0]
RESPONDCHECK="1"
# IP/Host of your CCcam-Server to connect to...
CCCAMIP="localhost"
# which command restarts cccam?
RestartCAMcmd="/var/emu/script/cccam restart"
# -------------------------------------------------------------- #
# >>> >> > DO NOT MESS WiTH ANYTHiNG BELOW THiS LiNE! < << <<< #
# -------------------------------------------------------------- #
. /var/emu/script/functions.sh
readipccfg
[ -z $CCNAME ] && clear && echo -e "\033[1;31mVariablen Konfigurationsfehler!\033[0m" && exit 1
[ -z $CCVERSION ] && clear && echo -e "\033[1;31mVariablen Konfigurationsfehler!\033[0m" && exit 1
[ -z "$TIMESTAMP2" ] && clear && echo -e "\033[1;31mVariablen Konfigurationsfehler!\033[0m" && exit 1
[ -z $CAMLOGS ] && clear && echo -e "\033[1;31mVariablen Konfigurationsfehler!\033[0m" && exit 1
[ -z $CRASHMAIL ] && clear && echo -e "\033[1;31mVariablen Konfigurationsfehler!\033[0m" && exit 1
[ -z $RESPONDCHECK ] && clear && echo -e "\033[1;31mVariablen Konfigurationsfehler!\033[0m" && exit 1
[ -z $CCCFG ] && clear && echo -e "\033[1;31mVariablen Konfigurationsfehler!\033[0m" && exit 1
CHECKFILE="/tmp/cccamtest.log"
WATCHDOGLOCK="/tmp/.CCcamWatchdog.lock"
SUBJECT="$CCNAME Watchdog!"
MESSAGE1="$CCNAME wurde auf `hostname -f` vom Watchdog Überwachungsscript neu gestartet"
MESSAGE2="$CCNAME ist auf `hostname -f` mehrfach gestartet, Konfiguration scheint fehlerhaft zu sein!"
_tmpdirs="/tmp /var/tmp /var/emu/tmp /usr/tmp /usr/local/tmp"
[ ! -z "$HOME" ] && _tmpdirs="${_tmpdirs} $HOME"
for _td in $_tmpdirs; do
[ -d "$_td" -a -w "$_td" ] && TMPd=$_td && break
done
[ -z "$TMPd" ] && TMPd="" || TMPd=$TMPd/
proc_SendEMail() {
msg=$1
[ $CRASHMAIL != 1 ] && return
mailsend "$SUBJECT" "$msg"
echo "CrashEmail verschickt.."
}
# read CCcam.cfg and extract user/pass/port
proc_read_CCCFG() {
[ ! -z "$CCCFG" -a ! -f "$CCCFG" ] && echo "ERROR cant find $CCCFG" && proc_exit
USERNAME=`grep -i "WEBINFO USERNAME" $CCCFG | cut -d ":" -f2 | sed -e 's/ //g' | sed -e 's/\r//g'`
PASSWORD=`grep -i "WEBINFO PASSWORD" $CCCFG | cut -d ":" -f2 | sed -e 's/ //g' | sed -e 's/\r//g'`
WEBINFOPORT=`grep -i "WEBINFO LISTEN PORT" $CCCFG | cut -d ":" -f2 | sed -e 's/ //g' | sed -e 's/\r//g'`
}
proc_get_infos() {
proc_read_CCCFG
[ -z "$WEBINFOPORT" ] && WEBINFOPORT="16001"
[ -z "$CCCAMIP" ] && CCCAMIP="127.0.0.1"
if [ -z "$USERNAME" ]; then
URL="http://${CCCAMIP}:${WEBINFOPORT}"
else
URL="http://"`proc_url_encode "${USERNAME}"`":"`proc_url_encode "${PASSWORD}"`"@${CCCAMIP}:${WEBINFOPORT}"
fi
}
proc_exit() {
rm -f $WATCHDOGLOCK
exit 0
}
# 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};
out=${out//\!/%21}; out=${out//\"/%22}; out=${out//\@/%40}; out=${out//\'/%27};
out=${out//\(/%28}; out=${out//\)/%29}; out=${out//\*/%2A}; out=${out//\-/%2D};
out=${out//\_/%5F}; out=${out//\./%2E}; out=${out//\€/%80};
echo $out
}
# This method checks if CCcam is still responding like it should
check_respond() {
proc_get_infos
rm -f ${TMPd}CCcamCheck.html
wget -q -O - "${URL}/" > ${TMPd}CCcamCheck.html
if [ $? -ne "0" ]; then
echo "Fehler beim anmelden/verbinden aufs CCcam WebIf!"
proc_SendEMail "$CCNAME: Fehler beim verbinden fuer RespondCheck auf `hostname -f`!"
proc_exit
fi
sleep 1
if [ ! -f "${TMPd}CCcamCheck.html" ]; then
echo " BAD - CCcam seems frozen, restarting CCcam!"
$RestartCAMcmd
if [ $? -ne "0" ]; then
echo "Fehler beim ausfuehren des CCcam-restart commands! $RestartCAMcmd"
proc_SendEMail "Fehler beim ausfuehren des CCcam-restart commands! $RestartCAMcmd"
proc_exit
fi
MESSAGE1+=" weil es nicht mehr reagierte!"
proc_SendEMail "$MESSAGE1"
else
echo " OK - $CCNAME is responding like it should!"
fi
}
## Script darf nur einmal gleichzeitig ausgefuehrt werden (innerhalb 1min)
if [ -e "$WATCHDOGLOCK" ]; then
if [ "`find \"$WATCHDOGLOCK\" -type f -mmin -1`" ]; then
echo "Lockfile $WATCHDOGLOCK exists and is not 1 minutes old yet. Quitting!"
exit 0
else
echo "Lockfile exists, but its older then 1 minutes. Removing lockfile."
touch "$WATCHDOGLOCK"
fi
else
touch "$WATCHDOGLOCK"
fi
#CCcam gestartet?
PID="$(pgrep -x $CCVERSION)"
if [[ ! -z $PID ]] ; then
echo "$TIMESTAMP2 Watchdog - CCcam Server laeuft"
[ $RESPONDCHECK == 1 ] && check_respond
else
cccam start
echo "$TIMESTAMP2 Watchdog - CCcam wurde neu gestartet" >> $CAMLOGS/CCcam-watchdog.log
proc_SendEMail "$MESSAGE1"
fi
#CCcam mehrfach gestartet?
ANZAHL="$(pgrep -c $CCVERSION)"
if [ $ANZAHL -gt 1 ] ; then
proc_SendEMail "$MESSAGE2"
fi
proc_exit
Du musst nicht kämpfen um zu siegen
Cubelles
IPC Neuling
Beiträge: 47 Registriert: Mi 20. Apr 2011, 16:34
Kontaktdaten:
Beitrag
von Cubelles » Di 17. Apr 2012, 15:28
hallo freissmaik,
habe das problem das das meine cccam nach einem ausfall nicht nicht neu startet.
habe die modifizierte cccam-watchdog.sh eingebunden:
wget -O/var/emu/script/cccam-watchdog.sh ipc.pebkac.at/ipc/scripts/cccam-watchdog.sh && chmod +x /var/emu/script/cccam-watchdog.sh
mit dem eintrag in i jobs:
* * * * * root /var/emu/script/cccam-watchdog.sh
die cccam sollte mit diesem eintrag jede minute getestet werden !?
funktioniert aber nicht …, was mache ich falsch ?
habe den eindruck, dass das script gar nicht gestartet wird …
gruß
feissmaik
Entwickler Team
Beiträge: 2576 Registriert: So 17. Apr 2011, 11:39
Been thanked: 1 time
Kontaktdaten:
Beitrag
von feissmaik » Di 17. Apr 2012, 15:45
führ das script doch mal manuell aus um zu sehen ob es gestartet werden kann
du kannst es auch mal im debug-modus ausführen um zu sehen was macht bzw was er nicht macht:
bash -x /var/emu/script/cccam-watchdog.sh
vorraussetzung für den REPSONDCHECK ist ein eingeschaltetes WEBINFO (ALLOW WEBINFO: yes)
evtl. hast du auch irgendwelche sonderzeichen als USERNAME oder PASSWORD gesetzt für das WEBINFO... wenn das der fall ist mal ohne sonderzeichen probieren
Du musst nicht kämpfen um zu siegen
Cubelles
IPC Neuling
Beiträge: 47 Registriert: Mi 20. Apr 2011, 16:34
Kontaktdaten:
Beitrag
von Cubelles » Mi 18. Apr 2012, 14:11
manuell funktioniert es ... cccam rennt auch danach, es geht aber nicht über i jobs
wo ich es so eingetragen habe:
* * * * * root /var/emu/script/cccam-watchdog.sh
die oscam-watchdog.sh geht ja und macht auch seine arbeit ....:
* * * * * root /var/emu/script/oscam-watchdog.sh
ist schon etwas seltsam ...
root@Card-Server /var/emu/script > ./cccam-watchdog.sh
CCcam : gestartet
Cron : gestartet
Sende E-Mail...
Apr 18 15:02:38 card-server sendEmail[650]: WARNING => The argument after -xu wa
Apr 18 15:02:38 card-server sendEmail[650]: WARNING => The argument after -xp wa
Apr 18 15:02:39 card-server sendEmail[650]: ERROR => Connection attempt to mail.
CrashEmail verschickt..
gruß
feissmaik
Entwickler Team
Beiträge: 2576 Registriert: So 17. Apr 2011, 11:39
Been thanked: 1 time
Kontaktdaten:
Beitrag
von feissmaik » Mi 18. Apr 2012, 15:55
Code: Alles auswählen
Apr 18 15:02:38 card-server sendEmail[650]: WARNING => The argument after -xu wa
Apr 18 15:02:38 card-server sendEmail[650]: WARNING => The argument after -xp wa
...wa...? steht da noch mehr?
hast du auch
apt-get install sendEmail installiert?
ich könnte mir grad nur vorstellen das jede minute zu kurzfristig is da das script einen "lockfile" schutz hat um nicht mehrmals gleichzeitig ausgeführt zu werden... stell das mal auf alle 2min
/EDIT: wobei, das kann eigentlich auch nicht sein, das lock file wird nach beenden des scripts gelöscht.... also zZt bin ich überfragt... könntest die ausgabe des scripts in der crontab noch umleiten um ggf zu sehen woran es hapert:
Code: Alles auswählen
* * * * * root /var/emu/script/cccam-watchdog.sh >>/tmp/cccam-watchdog.log 2>&1
das
2>&1 bewirkt das auch der error kanal umgeleitet wird auf den kanal 1 und der wiederum landet in der log datei...
erklärung dazu:
http://wwwcip.informatik.uni-erlangen.d ... nkung.html
http://www.xaprb.com/blog/2006/06/06/wh ... l-21-mean/
Du musst nicht kämpfen um zu siegen
Cubelles
IPC Neuling
Beiträge: 47 Registriert: Mi 20. Apr 2011, 16:34
Kontaktdaten:
Beitrag
von Cubelles » Mi 18. Apr 2012, 18:06
apt-get install sendEmail
hab ich noch nicht installiert, das ist aber im mom nicht so wichtig ....
das schreibt die das log ... UNGLAUBLICH
2012-04-18 18:47 Watchdog - CCcam Server laeuft
OK - CCcam is responding like it should!
glaub es mir die cccam rennt definitiv nicht
da wird irgendwas vorgegaukelt ...
Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste