#CCcam Autostartscript
#Über Cronmanager alle 5 Minuten starten lassen.
#!/bin/sh
if ps x |grep -v grep |grep -c CCcam_2.2.1 >/dev/null
then
#user and pass from the webinfo page.
if wget
Sie müssen registriert sein, um Links zu sehen.
then
rm /usr/script/index.html
echo "ok"
else
echo "not ok"
/usr/script/CCcamCheck.sh stop
/usr/script/CCcamCheck.sh start
fi
else
echo "not ok"
/usr/script/CCcamCheck.sh stop
/usr/script/CCcamCheck.sh start
fi
Anleitung habe ich folgende genommen -> Link
Rechte habe ich auf 755 gestzt
eingespielt habe ich die skripte via ultraEdit
Rcon habe ich auch einegstellt...
Ich glaube nicht, dass das so funktionieren wird. 1.Rufst Du das eigene script im script wieder auf 2.Ist beim start/stop script die Variable CAMNAME nicht verwendet und wird so das Camscript nicht finden
Warum auch das ganze über 2 scripte laufen lassen? Ich habe mir ein script abgeändert, das bei mir seit Ewigkeiten gut funktioniert (s.u.). Einfach das nach /var/script/CCcam_check-restart.sh kopieren, Rechte auf 755 und durch cron ausführen lassen. Mit einem Editor (KEIN Notepad o.ä.! – am besten via vi auf der box oder z.B. proton) die Variablen Username, passwort und camversion eintragen, ggf die Zeile mit oscam nehmen wenn beide gestartet werden soll und das wars. Unter /tmp/CCcam_Restart.log kannst du nachlesen, wann die CCCam neu gestartet wurde. Ich kann dir auch empfehlen, mal das script manuell ausführen zu lassen, ob das funzt. Einmal mit CCCam am Laufen und einmal CCCam gestoppt.
-knc
#!/bin/sh # CCcam Autostartscript – mod by KNC # starts via cron to check if CCcam is running # If CCCam is not running, it restarts CCCam
#user and pass from the webinfo page USERNAME="XXXX" PASSWORD="YYYY" CAMVERSION="2.2.0" ##CAMVERSION="2.2.0_oscam_1.0"
if ps x |grep -v grep |grep -c CCcam >/dev/null then if wget http://"$USERNAME":"$PASSWORD"@127.0.0.1:16001 -O - > /dev/null then echo "CCcam $CAMVERSION is running" #echo "CCcam "$CAMVERSION" is running: " `date` >> /tmp/CCcam_Restart.log else echo "CCcam $CAMVERSION is not running and needs to restart" /var/script/CCcam_"$CAMVERSION"_cam.sh stop /var/script/CCcam_"$CAMVERSION"_cam.sh start echo "CCcam "$CAMVERSION" restart: " `date` >> /tmp/CCcam_Restart.log fi else echo "CCcam $CAMVERSION is not running and needs to restart" /var/script/CCcam_"$CAMVERSION"_cam.sh stop /var/script/CCcam_"$CAMVERSION"_cam.sh start echo "CCcam "$CAMVERSION" restart: " `date` >> /tmp/CCcam_Restart.log fi
#!/bin/sh # CCcam Autostartscript – mod by KNC # starts via cron to check if CCcam is running # If CCCam is not running, it restarts CCCam
#user and pass from the webinfo page USERNAME="XXXX" PASSWORD="YYYY" CAMVERSION="2.2.0" ##CAMVERSION="2.2.0_oscam_1.0"
if ps x |grep -v grep |grep -c CCcam >/dev/null then if wget http://"$USERNAME":"$PASSWORD"@127.0.0.1:16001 -O - > /dev/null then echo "CCcam $CAMVERSION is running" #echo "CCcam "$CAMVERSION" is running: " `date` >> /tmp/CCcam_Restart.log else echo "CCcam $CAMVERSION is not running and needs to restart" /usr/script/CCcam_"$CAMVERSION"_cam.sh stop /usr/script/CCcam_"$CAMVERSION"_cam.sh start echo "CCcam "$CAMVERSION" restart: " `date` >> /tmp/CCcam_Restart.log fi else echo "CCcam $CAMVERSION is not running and needs to restart" /usr/script/CCcam_"$CAMVERSION"_cam.sh stop /usr/script/CCcam_"$CAMVERSION"_cam.sh start echo "CCcam "$CAMVERSION" restart: " `date` >> /tmp/CCcam_Restart.log fi
Du hast aber 2 scripte und das eine sollte das andere aufrufen.
Anyway, die Fragen zu meinem script:
1. /var/script ist der richtige Pfad für z.B. eine 7000er. Bei einer z.B. 7020er ist das ein link auf /usr/script also auch richtig. Schau am besten mal mit telnet auf deiner box und schaue nach, wo die CCcam scripte liegen.
2. Ich lasse das script alle 15 minuten laufen wobei 5min auch kein problem ist. Ich denke, es könnte zu einem Problem kommen, wenn Du zeitgleich via web auf die entitlements zugreifst, die ja bekanntlicherweise ein bisschen dauern aber im worst case wird cccam neu gestartet...
3. Die log Datei wird automatisch angelegt, sobald das cam via script neu gestartet wurde. Neue Einträge werden addiert. Hab ich deswegen gemacht, das log klein bleibt und nicht das FS voll schreibt. WOllte mal das ganze erweitern, mit größen check und nok infos etc aber wie das so ist wenn es läuft... never touch....
4. Zum testen kannst du das script manuell starten, dann die CCcam (deine Version) killen und nochmal starten. Danach muss CCcam wieder laufen (mit dem Befehl ps testen, geht ein paar sekunden) - Guckst Du hier:
root@dm7020:/> cd /var/script
root@dm7020:/usr/script> ./CCcam_check-restart.sh CCcam 2.2.0 is running
root@dm7020:/usr/script> killall -9 CCcam_2.2.0
killall: Could not kill pid '998': No such process
killall: Could not kill pid '999': No such process
killall: Could not kill pid '1000': No such process
killall: Could not kill pid '1001': No such process
killall: Could not kill pid '1002': No such process
killall: Could not kill pid '1003': No such process
killall: Could not kill pid '1004': No such process
killall: Could not kill pid '1005': No such process
killall: Could not kill pid '1006': No such process
root@dm7020:/usr/script> ./CCcam_check-restart.sh
wget: Unable to connect to remote host (127.0.0.1): Connection refused CCcam 2.2.0 is not running and needs to restart
[SCRIPT] stop: CCcam 2.2.0
kill: 86: Usage: kill [-s sigspec | -signum | -sigspec] [pid | job]... or
kill -l [exitstatus]
[SCRIPT] start: CCcam 2.2.0
root@dm7020:/usr/script> ps -ef | grep CCcam
1049 root 2144 S /var/bin/CCcam_2.2.0
1050 root 2144 S /var/bin/CCcam_2.2.0
1051 root 2144 S /var/bin/CCcam_2.2.0
1052 root 2144 S /var/bin/CCcam_2.2.0
1053 root 2144 S /var/bin/CCcam_2.2.0
1054 root 2144 S /var/bin/CCcam_2.2.0
1055 root 2144 S /var/bin/CCcam_2.2.0
1056 root 2144 S /var/bin/CCcam_2.2.0
1057 root 2144 S /var/bin/CCcam_2.2.0
1059 root 548 S grep CCcam
root@dm7020:/usr/script> cat /tmp/CCcam_Restart.log CCcam 2.2.0 restart: Sat Dec 4 14:46:31 CET 2010
1. /var/script ist der richtige Pfad für z.B. eine 7000er. Bei einer z.B. 7020er ist das ein link auf /usr/script also auch richtig. Schau am besten mal mit telnet auf deiner box und schaue nach, wo die CCcam scripte liegen.
Ich habe ne DM800 was wäre dann richtig? Wie kann ich über telnet schauen wo die cccam skripte liegen? Aber ich habe die skripte doch händig in usr/script einegepack wieso solle ich das über Telnet machen? ich weis doch wo die sind...
4. Zum testen kannst du das script manuell starten, dann die CCcam (deine Version) killen und nochmal starten. Danach muss CCcam wieder laufen (mit dem Befehl ps testen, geht ein paar sekunden) - Guckst Du hier:
dm800 login: root
Password:
root@dm800:~# cd /var/script
root@dm800:/usr/script# ./CCcam_check-restart.sh
-sh: ./CCcam_check-restart.sh: not found
root@dm800:/usr/script#
Ich habe jetzt das skript mir var umgeändert uns kriege es immer noch nicht zu laufen...
hier vielleicht noch ein auszug von telnet mit dem befehl ps:
Guten Morgen, im Prinzip ist es egal wo die liegen (vielleicht nicht in tmp), denn Du musst das script ja aus cron ausführen und die anderen scripte liegen unter /usr/script denn wenn due cd /var/script eingibst siehst du am prompt dass Du über diesen Link nach /usr/script gesprungen bist.
In dem script musst Du nur CCCam_2.2.0 in 2.2.1 umändern.
Zu Deinem Problem: Ich denke bzw bin mir sicher, dass die permissions sind nicht richtig gesetzt, dennDu bekommst als Fehlermeldung ein ./CCcam_check-restart.sh: not found
Mache mal folgendes:
root@dm7020:~> ls -la /var/script/CCcam_check-restart.sh -rwxr-xr-x 1 root root 983 Dec 4 14:57 /var/script/CCcam_checkrestart.sh
Hier siehst Du ein paar x vorne. Das heißt, dass die Datei ausführbar ist für verschiedene user. Ich tippe mal, dass dies bei dir nicht der Fall ist. Dann ändere es wie folgt:
Spätestens jetzt sollte es wie oben aussehen, also mit den x (execute)
Bevor Du das script nun startest, schau mal schnell mit dem editor vi auf der Box nach, ob die Zeilenenden ein Newline-Zeichen haben sondern auch noch das Carriage-Return. Dies siehst due an einem ^M am Schluss einer Linie wenn Du z.B. den Notepad aus Windows genommen hast. Sollte das der fall sein, nicht ausführen sondern die Datei neu erstellen mit vi oder Proton auf Windows z.B..
Mach mal folgendes:
root@dm7020:~> vi /var/script/CCcam_check-restart.sh
jetzt siehst Du das script in dem Editor. Ist am Ende jeder Zeile KEIN (ich glaube) ^M zu sehen sondern fängt die neue Zeile ohne Sonderzeichen an, dann ist alles ok. Verlassen kannst Du das ganze mit: :q! und dann Return und Du bist wieder im prompt (das : im vi leitet quasi ein Befehl ein, nicht vergessen)
#!/bin/sh # CCcam Autostartscript – mod by KNC # starts via cron to check if CCcam is running # If CCCam is not running, it restarts CCCam
#user and pass from the webinfo page USERNAME="XXXX" PASSWORD="YYYY" CAMVERSION="2.2.0" ##CAMVERSION="2.2.0_oscam_1.0"
if ps x |grep -v grep |grep -c CCcam >/dev/null then if wget http://"$USERNAME":"$PASSWORD"@127.0.0.1:16001 -O - > /dev/null then echo "CCcam $CAMVERSION is running" #echo "CCcam "$CAMVERSION" is running: " `date` >> /tmp/CCcam_Restart.log else echo "CCcam $CAMVERSION is not running and needs to restart" /var/script/CCcam_"$CAMVERSION"_cam.sh stop /var/script/CCcam_"$CAMVERSION"_cam.sh start echo "CCcam "$CAMVERSION" restart: " `date` >> /tmp/CCcam_Restart.log fi else echo "CCcam $CAMVERSION is not running and needs to restart" /var/script/CCcam_"$CAMVERSION"_cam.sh stop /var/script/CCcam_"$CAMVERSION"_cam.sh start echo "CCcam "$CAMVERSION" restart: " `date` >> /tmp/CCcam_Restart.log fi