Український SAT-TV форум

Enigma / Enigma 2 => Dreambox => Dreambox SD => Тема розпочата: stepan_kv від 10:45:19, 18 Травня 2008

Назва: Скрипти
Відправлено: stepan_kv від 10:45:19, 18 Травня 2008
Виконання будь якого завдання в певний час.  

Так як не на всіх іміджах присутній cron, то можна обійтись таким скриптом. Для прикладу - перезавантаження Дріма в 03:00

#!/bin/sh

strHour="03"
strMin="00"

while true
do
DateSTR=`date +%H%M%S`
#echo "$DateSTR"

if [ "$DateSTR" -ge "$strHour$strMin"00 ] && [ "$DateSTR" -le "$strHour$strMin"10 ]; then

#reboot
reboot
exit 0
else
sleep 8
fi
done



Потрібний час вводим тут:

strHour="03" - година
strMin="00" - хвилини

Дальше все залежить від вашої фантазіїї і потреб :)

Для прикладу, ось така команда

wget -q -O /dev/null http://root:dreambox@localhost/cgi-bin/admin?command=standby

переведе Дрім в режим очікування, а ось ця

wget -q -O /dev/null http://root:dreambox@localhost/cgi-bin/admin?command=wakeup

виведе його з цього режиму.

Щоб скрипт стартував автоматично потрібно прописати його в файл init, який повинен знаходитись в /var/etc/
Типу ось так /var/script/time_to_reboot.sh &
Назва: Скрипти
Відправлено: stepan_kv від 11:31:48, 18 Травня 2008
Автоматична перевірка з'єднання з сервером

Цим скриптом можна перевірити онлайн ваш сервер шарингу, чи ні.

#!/bin/sh

PINGRESERVER="ip_or_domen_of_server"
LOCKFILE="/tmp/${PINGRESERVER}.lock"
CHECKTIME=60

while true; do

   
    if (! ping -c 3 ${PINGRESERVER} > /dev/null 2> /dev/null) then

       
        if (! test -f ${LOCKFILE}) then
           
            touch ${LOCKFILE}
            wget -q -O /dev/null http://root:dreambox@localhost/cgi-bin/message?message=Server+OFF!!!&wait=on
        fi

    else
       
        if (test -f ${LOCKFILE}) then

            rm ${LOCKFILE}
            wget -q -O /dev/null http://root:dreambox@localhost/cgi-bin/message?message=Server+ON!!!&wait=on
        fi
    fi

    sleep ${CHECKTIME}
done


IP-адрес, або домен прописуем тут

PINGRESERVER="ip_or_domen_of_server"

Часовий інтервал, через який буде опитуватись сервер виставляєм тут:

CHECKTIME=60, час в секундах.

Якщо пропаде з'єднання з сервером, то через хвилину ви побачите на екрані повідомлення

(https://sat-ukraine.info/proxy.php?request=http%3A%2F%2Fi26.tinypic.com%2Fx6h37q.jpg&hash=7bad2922072d202acdaede83ef3c41cdf96bdb1d)

А якщо з'єднання відновиться, то повідомлення буде таким:

(https://sat-ukraine.info/proxy.php?request=http%3A%2F%2Fi28.tinypic.com%2Fr92vdu.jpg&hash=6862d60836897f6cd58610753b45d384e2ab1cfb)

Ці повідомлення ви будете бачити незалежно від того, які канали переглядаєте чи FTA, чи через шаринг. Це дуже зручно, тому що відразу видно, коли пропав конект з сервером і коли з'явився.

Якщо в вас пароль відмінний від dreambox, то замінюєм на свій

root:your_password@localhost
Назва: Скрипти
Відправлено: stepan_kv від 18:02:41, 19 Травня 2008
Цей скрипт перевіряє, чи запущений емулятор чи ні. Суть роботи в тому, що скрипт, через певний період, перевіряє чи є емулятор в списку процесів. Якщо емулятор не включений, або по якісь причині перестав працювати і відсутній в списку процесів, то скрипт запусить його знов. Для кардсервера саме то :D

Для прикладу був взятий емулятор CCcam.

#!/bin/sh

while true

do sleep 300;
if ! ps |grep -v grep |grep -c /var/bin/CCcam_2.0.8 > /dev/null
then
wget -O- http://root:dreambox@localhost/NT?startEmu=1
fi

done


300 це час в секундах, через який буде перевірятись список процесів.

Увага!!! Скрипт тестувався на Nabilosat іміджі і команда перезапуску емулятора

wget -O- http://root:dreambox@localhost/NT?startEmu=1

для інших іміджів буде відрізнятись.

Для Nabilosat іміджа, щоб правильно задати команду запуску емулятора, спочатку дивимся в файл smartcam.config в /var/etc/

Цитувати
osd-name 1 = Common Interface
emulator 1 = Common Interface
camd 1 =
daemon 1 =
kill 1 = 
sleep 1 =
zap-sleep 1 =

osd-name 2= CCcam_2.0.8
emulator 2= CCcam_2.0.8
camd 2=
daemon 2= CCcam_2.0.8
kill 2=
sleep 2= 5
zap-sleep 2= 5

osd-name 3= mgcamd_1.30a
emulator 3= mgcamd_1.30a
camd 3=
daemon 3= mgcamd_1.30a
kill 3=
sleep 3= 4
zap-sleep 3= 4

osd-name 2= CCcam_2.0.8 , то команда буде виглядати так

wget -O- http://root:dreambox@localhost/NT?startEmu=1

тобто на одну цифру менше.