Problem mit CCcam watchdog script

Fragen oder Probleme?
Reppo
IPC Neuling
Beiträge: 8
Registriert: Di 26. Apr 2011, 14:45
Kontaktdaten:

Problem mit CCcam watchdog script

Beitrag von Reppo »

Bei der Ausführung von


root@CCcam ~ > /var/emu/script/cccam-watchdog.sh

bekomme ich als Fehler:

Variablen Konfigurationsfehler !

also müsste ja in der functions.sh was nicht passen... dachte ich mir. Habe den Fehler aber nicht gefunden.

CCNAME="CCcam"
CCVERSION="CCcam.x86"
CCURL="localhost"
CCWWW="/var/www/ipc"
CCCFG="$CAMCONFIGS/CCcam.cfg"
CCCFGNEW="$CAMCONFIGS/CCcam.cfg.new"
CCCFGBAK="$CAMCONFIGS/CCcam.cfg.old"
CCCHANGELOG="$CAMLOGS/CCcam-changes.log"

sollte alles unverändert sein.

Wie kann ich den Fehler weiter eingrenzen?
feissmaik
Entwickler Team
Beiträge: 2576
Registriert: So 17. Apr 2011, 11:39
Been thanked: 1 time
Kontaktdaten:

Re: Problem mit CCcam watchdog script

Beitrag von feissmaik »

guck zb in dem Script nach was du ausführst...
Du musst nicht kämpfen um zu siegen
Reppo
IPC Neuling
Beiträge: 8
Registriert: Di 26. Apr 2011, 14:45
Kontaktdaten:

Re: Problem mit CCcam watchdog script

Beitrag von Reppo »

Problem ist wohl, dass in cccam-watchdog.sh eine Zeile ist mit

[ -z $CRASHMAIL ] && clear && echo -e "\033[1;31mVariablen Konfigurationsfehler !\033[0m" && exit 1

und in functions.sh ist das nicht definiert und von daher kommt dann wohl der Variablen Konfigurationsfehler...

Das führt dann dazu, dass CCcam nicht neugestartet wird...

functions.sh

Code: Alles auswählen

IPCCONFIG="/var/emu/conf/ipc.cfg"
CAMCONFIGS=/var/etc
CAMBINS=/var/emu
CAMLOGS=/var/log/ipc
CAMJOBS=/etc/crontab

CCNAME="CCcam"
CCVERSION="CCcam.x86"
CCURL="localhost"
CCWWW="/var/www/ipc"
CCCFG="$CAMCONFIGS/CCcam.cfg"
CCCFGNEW="$CAMCONFIGS/CCcam.cfg.new"
CCCFGBAK="$CAMCONFIGS/CCcam.cfg.old"
CCCHANGELOG="$CAMLOGS/CCcam-changes.log"

OSNAME="OScam"
OSVERSION="oscam.x86"
OSBIN=$CAMBINS/oscam/$OSVERSION
OSCFG="$CAMCONFIGS/oscam.conf"
OSSERVER="$CAMCONFIGS/oscam.server"
OSUSER="$CAMCONFIGS/oscam.user"
OSERVICES="$CAMCONFIGS/oscam.services"
OSRVID="$CAMCONFIGS/oscam.srvid"

NCSNAME="NewCS"
NCSVERSION="newcs.i686"
NCSBIN=$CAMBINS/newcs/$NCSVERSION
NCSXML="$CAMCONFIGS/newcs.xml"
NCSLOG="$CAMLOGS/newcs.log"

BACKUPDIR="/var/backups/ipc"
TMPDIR="/var/emu/tmp/script"
TMPFILE1="$TMPDIR/CCcam1.tmp"
TMPFILE2="$TMPDIR/CCcam2.tmp"
TIMESTAMP=`date +"%Y%m%d_%H%M%S"`
TIMESTAMP2=`date +"%Y-%m-%d %H:%M"`

INFOPHP_CONFIG=/var/www/ipc/infophp/config.php
INFOPHP_WORKPATH='/var/emu/tmp/infophp/'
INFOPHP_UPDATEFROMBUTTON='true'
INFOPHP_FULLRESHARE='true'
INFOPHP_COUNTRYWHOIS='true'

IPURL="http://ipc.pebkac.at/ipc"
FMURL="http://ipc.pebkac.at/forum"

SHSETUP=ipcsetup.sh

#++++++++++++++++++++++++++++++ VARIABLES ++++++++++++++++++++++++++++++

#++++++++++++++++++++++++++++++ FUNCTIONS ++++++++++++++++++++++++++++++

# .webaccess neu schreiben
NewWebAccess() {
  htpasswd -bc /var/emu/conf/.webaccess $1 $2
}

# Tempdir erstellen, Rechte setzen, leeren
tempdir() {
  #echo "Function: tempdir"
  [ ! -d $TMPDIR ] && mkdir -p $TMPDIR && chmod 777 -R $TMPDIR  > /dev/null 2>&1
  cd $TMPDIR
  rm -f $TMPDIR/*  > /dev/null 2>&1
  cd $TMPDIR
}

# Rechte setzen
setrights() {
  OWNER="www-data:www-data"
  chown -R $OWNER /var/etc /var/keys > /dev/null 2>&1
  #CCcam.cfg - Rechte und Besitzer
  chmod 755 /var/etc > /dev/null 2>&1
  chmod 755 $CCCFG > /dev/null 2>&1
  chown $OWNER $CCCFG > /dev/null 2>&1
  #CCcam key files
  chmod 755 /var/keys/CCcam.* >/dev/null 2>&1
  chown $OWNER /var/keys/CCcam.* >/dev/null 2>&1
  #OScam config files
  chmod 755 $OSCFG >/dev/null 2>&1
  chmod 755 $OSSERVER >/dev/null 2>&1
  chmod 755 $OSUSER >/dev/null 2>&1
  chmod 755 $OSERVICES >/dev/null 2>&1
  chmod 755 $OSRVID >/dev/null 2>&1
  chown $OWNER $OSCFG >/dev/null 2>&1
  chown $OWNER $OSSERVER >/dev/null 2>&1
  chown $OWNER $OSUSER >/dev/null 2>&1
  chown $OWNER $OSERVICES >/dev/null 2>&1 
  chown $OWNER $OSRVID >/dev/null 2>&1
  #NewCS config file
  chmod 755 $NCSXML >/dev/null 2>&1
  chown $OWNER $NCSXML >/dev/null 2>&1
  #EMU
  chmod 755 -R /var/emu > /dev/null 2>&1
  chmod 777 -R /var/emu/tmp > /dev/null 2>&1
  chown $OWNER -R /var/emu/tmp > /dev/null 2>&1
  #Changelog - Erstellen, Rechte, Besitzer
  [ ! -f $CCCHANGELOG ] && echo "" > $CCCHANGELOG > /dev/null 2>&1
  chmod 755 $CCCHANGELOG > /dev/null 2>&1
  chown $OWNER $CCCHANGELOG > /dev/null 2>&1
  #InfoPHP Tempdir und Rechte
  [ ! -d $INFOPHP_WORKPATH ] && mkdir -p $INFOPHP_WORKPATH > /dev/null 2>&1
  chmod 777 -R $INFOPHP_WORKPATH > /dev/null 2>&1
  chown $OWNER -R $INFOPHP_WORKPATH > /dev/null 2>&1
  chown $OWNER $INFOPHP_CONFIG > /dev/null 2>&1
}

# Paket Konfiguration auslesen
readipccfg() {
  #echo "Function: readipccfg"
  source $IPCCONFIG
}

# CCcam.cfg Konfiguration auslesen
readcccamcfg() {
  #echo "Function: readcccamcfg"
  CCUSER=$(grep -i "WEBINFO USERNAME" $CCCFG | cut -d ":" -f2 | sed -e 's/ //g' | sed -e 's/\r//g')
  CCPASS=$(grep -i "WEBINFO PASSWORD" $CCCFG | cut -d ":" -f2 | sed -e 's/ //g' | sed -e 's/\r//g')
  CCPORT=$(grep -i "WEBINFO LISTEN PORT" $CCCFG | cut -d ":" -f2 | sed -e 's/ //g' | sed -e 's/\r//g')
  CCCHAN=$(grep -i "CHANNELINFO FILE" $CCCFG | cut -d ":" -f2 | sed -e 's/ //g' | sed -e 's/\r//g')
  CCPROV=$(grep -i "PROVIDERINFO FILE" $CCCFG | cut -d ":" -f2 | sed -e 's/ //g' | sed -e 's/\r//g')
  CCSPORT=$(grep -i "SERVER LISTEN PORT" $CCCFG | cut -d ":" -f2 | sed -e 's/ //g' | sed -e 's/\r//g')
  [ "$CCSPORT" = "" ] && CCSPORT="12000"
  [ "$CCPORT" = "" ] && CCPORT="16001"
  #echo "CCUSER: $CCUSER"
  #echo "CCPASS: $CCPASS"
  #echo "CCPORT: $CCPORT"
}

# Teste ob CCcam laeuft
cccamrun() {
  #echo "Function: cccamrun"
  PID="$(pgrep -x $CCVERSION)"
  if [[ ! -z $PID ]] ; then
    dummy="1"  
    #echo "CCcam laeuft"
  else
    echo "CCcam ist nicht gestartet"
    exit 1
  fi
}

# Weblogin testen
weblogon() {
  #echo "Function: weblogon"
  WUP=""
  [ "$CCUSER" != "" ] && WUP="$CCUSER:$CCPASS@"
  CCWEBIF="http://$WUP$CCURL:$CCPORT"
  WEBLOGIN=$(wget -q -O - $CCWEBIF)
  [[ -z $WEBLOGIN ]] && clear && echo "CCcam Weblogon ERROR!" && exit 1
}

# E-Mail senden
mailsend() {
  readipccfg
  echo "Sende E-Mail..."
  sendEmail -f $SMTPFROM -t $SMTPTO -u $1 -m $2 -s $SMTPSERVER -xu $SMTPUSER -xp $SMTPPASS
}

# InfoPHP Konfiguration schreiben
infophpconfwrite() {
  echo "<?php" >> $TMPFILE1
  echo "" >> $TMPFILE1
  echo "// CONFIG CCcamInfoPhp" >> $TMPFILE1
  echo "// Diese Config wird automatisch beim schliessen von [cccam cfg] erzeugt!" >> $TMPFILE1
  echo "" >> $TMPFILE1
  echo '$CCCamWebInfo[] = array("'$CCURL'","'$CCPORT'","'$CCUSER'","'$CCPASS'"); //Hier die Infos aus der CCcam.cfg eintragen' >> $TMPFILE1
  echo "" >> $TMPFILE1
  echo '$work_path = "'$INFOPHP_WORKPATH'"; // Verzeichnis der temporaeren InfoPhp Dateien' >> $TMPFILE1
  echo '$update_from_button = '$INFOPHP_UPDATEFROMBUTTON'; // Update Button anzeigen?' >> $TMPFILE1
  echo '$fullReshare = '$INFOPHP_FULLRESHARE'; // Reshareanzahl der Pairkarten anzeigen?' >> $TMPFILE1
  echo '$country_whois = '$INFOPHP_COUNTRYWHOIS'; // Laenderkennzeichen anzeigen?' >> $TMPFILE1
  echo '$password = "'$INFOPHP_PASS'"; // InfoPhp Loginseite Kennwort' >> $TMPFILE1
  echo "" >> $TMPFILE1
  echo "?>" >> $TMPFILE1
  if [ -f $INFOPHP_CONFIG ] ; then
    cp -f $TMPFILE1 $INFOPHP_CONFIG
    echo ""
    echo -e "\033[1;37mInfoPHP Konfiguration wurde uebertragen\033[0m"
  else
    echo -e "\033[1;31m$INFOPHP_CONFIG existiert nicht!\033[0m"
  fi
  rm -f $TMPDIR/*
}
cccam-watchdog.sh

Code: Alles auswählen

#!/bin/bash
# IPC - CCcam-Watchdog
# (c)SEG74

. /var/emu/script/functions.sh
[ -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
	echo "$TIMESTAMP2    Watchdog - CCcam wurde neu gestartet" >> $CAMLOGS/CCcam-watchdog.log
	cccam start
	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
feissmaik
Entwickler Team
Beiträge: 2576
Registriert: So 17. Apr 2011, 11:39
Been thanked: 1 time
Kontaktdaten:

Re: Problem mit CCcam watchdog script

Beitrag von feissmaik »

mmmh komisch das dass bisher sonst noch keinem aufgefallen is :(

Füg mal unter " . /var/emu/script/functions.sh " die funktion readipccfg ein - aber da is dann leider auch noch ein weiterer Bug drin:
[ -z $TIMESTAMP2 ]
muss aber so aussehen:
[ -z "$TIMESTAMP2" ]

Siehe dazu bitte -> Inoffizielle IPC v11.3b (v11.3 bugfixes)
Du musst nicht kämpfen um zu siegen
Reppo
IPC Neuling
Beiträge: 8
Registriert: Di 26. Apr 2011, 14:45
Kontaktdaten:

Re: Problem mit CCcam watchdog script

Beitrag von Reppo »

Ich finde das auch erschreckend, dass sowas keinem auffällt. Ist ja mit das wichtigste, wenn man CCcam laufen lässt, dass der watchdog läuft.
Ich hatte bisher ein anderes watchdog script laufen, wollte aber jetzt das von hier (IPC) nutzen und dadurch ist es mir aufgefallen.
Aber finde ich topp, dass du mir direkt helfen konntest und ein Update herausgebracht hast. So muss das sein. Leider bekomme ich momentan...
EMU-Konfiguration beibehalten?
Dies sind: /var/etc/* und /var/keys/*

Die IPC-Konfiguration bleibt nur bei Update selber Versionsnummer erhalten!
Ansonsten sind IPC, Autostart und Jobs neu einzustellen.

Konfiguration beibehalten? (j/n): j

Update wird gestartet..
-------------------------------------------------------------------------------

Jetzt gehts los..

Download..
--2011-08-31 10:37:27-- http://ipc.pebkac.at/ipc/ipc-113b.tgz
Auflösen des Hostnamen ipc.pebkac.at... 184.22.241.144
Verbindungsaufbau zu ipc.pebkac.at|184.22.241.144|:80... verbunden.
HTTP-Anforderung gesendet, warte auf Antwort... 404 Not Found
2011-08-31 10:37:27 FEHLER 404: Not Found.

Download nicht moeglich, Abbruch!
feissmaik
Entwickler Team
Beiträge: 2576
Registriert: So 17. Apr 2011, 11:39
Been thanked: 1 time
Kontaktdaten:

Re: Problem mit CCcam watchdog script

Beitrag von feissmaik »

ups - hatte hier Probleme mit dem Upload - müsste jetzt aber funtzn :)


...Wenn die Cam nicht crasht brauch man auch kein watchdog - deshalb is mir das bisher auch nicht aufgefallen
Spoiler
Show
Uptime : 237d 14:00:10
Connected clients : xx
Total handled client ecm's : 20772316
Total handled client emm's : 8067857
Total handled LOCAL ecm's : 5769603
Peak load : 90 38 9 5 2 1
Du musst nicht kämpfen um zu siegen
Reppo
IPC Neuling
Beiträge: 8
Registriert: Di 26. Apr 2011, 14:45
Kontaktdaten:

Re: Problem mit CCcam watchdog script

Beitrag von Reppo »

Schau mal Feissmaik, hier ist ein anderes watchdog-script, das testet, ob CCcam per telnet erreichbar ist und wenn nicht, wird es neu gestartet.

Code: Alles auswählen

#!/bin/sh
CCCAMPATH="/CCcam/bin"
CCCAMNAME="CCcam.x86"
TELNETPORT="16000"
LOGFILE="CCcam_restart_log.txt"
echo info|nc localhost $TELNETPORT>>/tmp/check.txt
set $(ls -s /tmp/check.txt)
if [ "$1" = "0" ];
then
echo $(date "+%d.%m.%y|%H:%M:%S|CCcam makes a restart")>>/CCcam/log/$LOGFILE
$CCCAMPATH/$CCCAMNAME restart
else
echo "all fine :)"
fi
rm /tmp/check.txt
exit 0
Das halte ich für sinnvoller, da dein watchdog script nur schaut, ob der Prozess noch läuft. Und häufig läuft der Prozess noch, aber CCcam reagiert trotzdem nicht mehr und genau diesen Umstand kann dein Script leider nicht abfangen.
feissmaik
Entwickler Team
Beiträge: 2576
Registriert: So 17. Apr 2011, 11:39
Been thanked: 1 time
Kontaktdaten:

Re: Problem mit CCcam watchdog script

Beitrag von feissmaik »

Ich kenne sowas - mein privates Script beeinhaltet auch einen "response" check - aber Sinnvoll ist es nur bis zu einem gewissen Grad - sowas kann CCcam auch überhaupt erst zum crashen bringen genauso wie zu oftes updaten von CCcamInfoPHP oder wenn zuviele von meinen alten Munin-Plugins geladen sind crasht CCcam ggf ebenfals

Es gibt viele unwissende Anfänger die nicht wirklich wissen was sie da eigentich tun oder was das bewirkt - in der Vergangenheit habe ich in anderen Foren obiges Script Supportet, trotz dick und fettem Hinweis habe ich immer wieder erleben müssen das es irgendwer jede Minute, am besten jede Sekunde (gab auch jmdn der sich dafür was gebastelt hatte) hat laufen lassen und gleichzeitig meinten sie müssten ihre Cam jeden Tag neu starten weil die nicht stabil laufen würde und von watchdog ständig neu gestartet werden würde....

Sorry aber absolut jeden anzunehmenden Fall kann und will ich nicht beachten müssen - Du magst das vllt nicht machen aber irgendwer anderes scho und dann darf ich mich hier mit demjenigen herrumschlagen? Ne danke...

Das Script da ist aber auch ein wenig "fehlerhaft" gestaltet
Du musst nicht kämpfen um zu siegen
Reppo
IPC Neuling
Beiträge: 8
Registriert: Di 26. Apr 2011, 14:45
Kontaktdaten:

Re: Problem mit CCcam watchdog script

Beitrag von Reppo »

Kannst du nicht ein angepasstes Script für IPC hier im Forum einstellen ohne es fest in IPC zu integrieren?
Ich bin leider nicht so fit, dass ich das mal eben aus der Hand schütteln könnte...
Ich habe leider das Problem, dass mein CCcam gerne mal in den Morgenstunden am WE "aussteigt" und ein zuverlässiges Watchdog Script, dass alle fünf Minuten läuft und mich über den Neustart per Email informiert, würde mir sehr helfen.
feissmaik
Entwickler Team
Beiträge: 2576
Registriert: So 17. Apr 2011, 11:39
Been thanked: 1 time
Kontaktdaten:

Re: Problem mit CCcam watchdog script

Beitrag von feissmaik »

cccam-watchdog_v2.rar
(1.56 KiB) 92-mal heruntergeladen
Du musst nicht kämpfen um zu siegen
Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste