Автор Тема: Скрипти  (Прочитано 4488 раз)

0 Користувачів і 1 Гість дивляться цю тему.

Відсутній stepan_kv

  • Глобальний модератор
  • Ветеран
  • *****
  • Повідомлень: 921
  • Рейтинг: +1916/-1
Скрипти
« : 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

  • Глобальний модератор
  • Ветеран
  • *****
  • Повідомлень: 921
  • Рейтинг: +1916/-1
Скрипти
« Відповідь #1 : 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, час в секундах.

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


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


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

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

root:your_password@localhost

Відсутній stepan_kv

  • Глобальний модератор
  • Ветеран
  • *****
  • Повідомлень: 921
  • Рейтинг: +1916/-1
Скрипти
« Відповідь #2 : 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

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