Enigma / Enigma 2 > Dreambox SD
Скрипти
(1/1)
stepan_kv:
Виконання будь якого завдання в певний час.
Так як не на всіх іміджах присутній 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:
Автоматична перевірка з'єднання з сервером
Цим скриптом можна перевірити онлайн ваш сервер шарингу, чи ні.
#!/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, час в секундах.
Якщо пропаде з'єднання з сервером, то через хвилину ви побачите на екрані повідомлення
А якщо з'єднання відновиться, то повідомлення буде таким:
Ці повідомлення ви будете бачити незалежно від того, які канали переглядаєте чи FTA, чи через шаринг. Це дуже зручно, тому що відразу видно, коли пропав конект з сервером і коли з'явився.
Якщо в вас пароль відмінний від dreambox, то замінюєм на свій
root:your_password@localhost
stepan_kv:
Цей скрипт перевіряє, чи запущений емулятор чи ні. Суть роботи в тому, що скрипт, через певний період, перевіряє чи є емулятор в списку процесів. Якщо емулятор не включений, або по якісь причині перестав працювати і відсутній в списку процесів, то скрипт запусить його знов. Для кардсервера саме то :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
--- End quote ---
osd-name 2= CCcam_2.0.8 , то команда буде виглядати так
wget -O- http://root:dreambox@localhost/NT?startEmu=1
тобто на одну цифру менше.
Навігація
Go to full version