Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам > OpenWRT/LEDE

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.08.2017, 21:49   #11
Tohin
Moderator
 
Регистрация: 20.07.2014
Адрес: МСК
Сообщений: 991
Вес репутации: 1030
Tohin is a jewel in the roughTohin is a jewel in the roughTohin is a jewel in the rough
По умолчанию

А есть уверенность, что в случае зависания роутера скрипт вообще стартует?
Может стоит добавить в начало скрипта touch /path/to/usb/imworking
и проверить наличие файла после ребута.
Ну и соответственно искать, что именно происходит при зависании, записывая (в файл на флешке) выхлопы команд.

Сложный вариант: Распаять Uart и смотреть, во время зависания, что именно там происходит.
Tohin вне форума   Ответить с цитированием
Старый 17.08.2017, 22:21   #12
sunny
Senior Member
 
Аватар для sunny
 
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1600
sunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to all
По умолчанию

Tohin
Ну не знаю
У меня скрипт в таком исполнении срабатывает каждый день(бывало и не по разу) - уже год или более того.
Цикл сумерки переход с дня на ночь и наоборот, reboot - "сбрасывает мыло" с камеры.
Собственно, когда тему по motion запилил с тех пор точно...
Зависит от сферы использования, можно и добавить..
__________________
Читаю ваши мысли по аватару ...

Последний раз редактировалось sunny; 17.08.2017 в 22:24.
sunny вне форума   Ответить с цитированием
Старый 17.08.2017, 22:44   #13
to_
Member
 
Регистрация: 04.01.2014
Сообщений: 81
Вес репутации: 0
to_ is an unknown quantity at this point
По умолчанию

Цитата:
Сообщение от Tohin Посмотреть сообщение
А есть уверенность, что в случае зависания роутера скрипт вообще стартует?
Может стоит добавить в начало скрипта touch /path/to/usb/imworking
и проверить наличие файла после ребута.
Ну и соответственно искать, что именно происходит при зависании, записывая (в файл на флешке) выхлопы команд.

Сложный вариант: Распаять Uart и смотреть, во время зависания, что именно там происходит.
вот добавил , если флэшка отвалит (файл FILE=/www/my.db, в который все время пишется перестанет изменятся в течение более 600 сек):
PHP код:
#!/bin/sh
#

# which file to check
FILE=/www/my.db
# time limit in seconds
TLIMIT=600

# main
CURRENT="$(date +%s)"
FILEMOD="$(stat ${FILE} -c %Y)"
TDIFF="$(echo ${CURRENT}-${FILEMOD} | bc)"

# comparison
if [[ ${TDIFF} -gt ${TLIMIT} ]]
  
then
{
date >> /www/log.log
echo "File ${FILE} was last modified more than ${TLIMIT} seconds ago." >> /www/log.log

  
echo > /sys/class/gpio/gpio8/value
  sleep 5
  
echo > /sys/class/gpio/gpio8/value
  sleep 5
  reboot 
&&  exit
}

  else
        echo 
'ok'
fi 
и еще через пару минут , то же по крону , если сеть отвалит дополнил:
PHP код:
#! /bin/sh
# Checks if the wifi conn is up.  If not, it tries to restart
# the wifi.  If that fails, then reboot.

if (! ping -c 3 ya.ru >/dev/nill 2>&1)

        
then
                
{
date >> /www/log.log
echo "lost connect">> /www/log.log

                
echo > /sys/class/gpio/gpio8/value
                sleep 5
                
echo > /sys/class/gpio/gpio8/value
                sleep 5
                reboot 
&&  exit
                }
        else
                echo 
'ping ok'


fi 
А это я не понял :
touch /path/to/usb/imworking Это ...Устанавливает дату последнего изменения и доступа к файлу? А какого файла после ребута? Самого скрипта? или FILE=/www/my.db?
Думаю, если флэшка отвалится, все равно ничего не запишем никуда .

Последний раз редактировалось to_; 17.08.2017 в 22:53.
to_ вне форума   Ответить с цитированием
Старый 17.08.2017, 23:01   #14
Tohin
Moderator
 
Регистрация: 20.07.2014
Адрес: МСК
Сообщений: 991
Вес репутации: 1030
Tohin is a jewel in the roughTohin is a jewel in the roughTohin is a jewel in the rough
По умолчанию

Цитата:
touch /path/to/usb/imworking Это ...Устанавливает дату последнего изменения и доступа к файлу? А какого файла после ребута? Самого скрипта? или FILE=/www/my.db?
Это создает файл, если он отсутствует. Или обновляет дату изменения для существующего.

Я исходил из того, что "запись идет (и флэшка живет и мигает)"

А /www случайно не на виртуальной фс? А то лог не переживет ребута.
Tohin вне форума   Ответить с цитированием
Старый 17.08.2017, 23:13   #15
to_
Member
 
Регистрация: 04.01.2014
Сообщений: 81
Вес репутации: 0
to_ is an unknown quantity at this point
По умолчанию

Цитата:
Сообщение от Tohin Посмотреть сообщение
Это создает файл, если он отсутствует. Или обновляет дату изменения для существующего.

Я исходил из того, что "запись идет (и флэшка живет и мигает)"

А /www случайно не на виртуальной фс? А то лог не переживет ребута.
Опять не понял. Что значит виртуальный? Имеете ввиду RAM? У меня все как описано в руководстве CyberWRT - использование флэшки в качестве системного диска. Конечно если внешняя флэшка отвалится во флэш роутера не запишится. Или я не догоняю о чем идет речь? Я не силен в Линуксах. Лог лежит /www/log.log

И опять , о каком файле идет речь в команде touch?
to_ вне форума   Ответить с цитированием
Старый 18.08.2017, 09:06   #16
solalex
Senior Member
 
Регистрация: 20.01.2015
Сообщений: 312
Вес репутации: 443
solalex has much to be proud ofsolalex has much to be proud ofsolalex has much to be proud ofsolalex has much to be proud ofsolalex has much to be proud ofsolalex has much to be proud ofsolalex has much to be proud ofsolalex has much to be proud ofsolalex has much to be proud of
По умолчанию

Цитата:
Сообщение от to_ Посмотреть сообщение
использование флэшки в качестве системного диска.
своим скриптом вы отрубаете питание усб, а флешка смонтирована как extroot? естественно ничего толком работать не будет. делайте в скрипте просто ребут, без дерганья gpio
solalex вне форума   Ответить с цитированием
Старый 18.08.2017, 11:50   #17
to_
Member
 
Регистрация: 04.01.2014
Сообщений: 81
Вес репутации: 0
to_ is an unknown quantity at this point
По умолчанию

Цитата:
Сообщение от solalex Посмотреть сообщение
своим скриптом вы отрубаете питание усб, а флешка смонтирована как extroot? естественно ничего толком работать не будет. делайте в скрипте просто ребут, без дерганья gpio
Тогда флэшка не опознается после ребута.

PS: Похоже справился. Буду тестировать. Помогло reboot -n -f

Последний раз редактировалось to_; 18.08.2017 в 13:13.
to_ вне форума   Ответить с цитированием
Старый 18.08.2017, 17:07   #18
Dioptimizer
Senior Member
 
Регистрация: 17.02.2013
Адрес: Харьков
Сообщений: 235
Вес репутации: 689
Dioptimizer has a reputation beyond reputeDioptimizer has a reputation beyond reputeDioptimizer has a reputation beyond reputeDioptimizer has a reputation beyond reputeDioptimizer has a reputation beyond reputeDioptimizer has a reputation beyond reputeDioptimizer has a reputation beyond reputeDioptimizer has a reputation beyond reputeDioptimizer has a reputation beyond reputeDioptimizer has a reputation beyond reputeDioptimizer has a reputation beyond repute
По умолчанию

Хорошим тоном будет выгружать драйвер USB, а не отрезать питание через GPIO.
Лучше отрезать питание будет последним этапом.
Еще использовать команду sync перед выгрузкой драйвера желательно если есть флешки или HDD.

Последний раз редактировалось Dioptimizer; 18.08.2017 в 17:12.
Dioptimizer вне форума   Ответить с цитированием
Старый 18.08.2017, 17:48   #19
to_
Member
 
Регистрация: 04.01.2014
Сообщений: 81
Вес репутации: 0
to_ is an unknown quantity at this point
По умолчанию

Цитата:
Сообщение от Dioptimizer Посмотреть сообщение
Хорошим тоном будет выгружать драйвер USB, а не отрезать питание через GPIO.
Лучше отрезать питание будет последним этапом.
Еще использовать команду sync перед выгрузкой драйвера желательно если есть флешки или HDD.
По моему это как раз не верно. Во первых - какой sync если нет sda1? Во вторых - чего выгружать драйвер , если нет устройств USB , а дальше будет перезагрузка с отключением питания?
Я могу понять , в случае если все устройства USB работают, это справедливо, но тогда зачем что-то перегружать? Весь сыр-бор как раз из-за того, что устройства USB отваливаются иногда и overley "открывает" FS ROM роутера. Кстати в приведенной команде reboot -n -f как раз -n говорит о том что синхронизацию делать не надо, иначе в моей ситуации роутер не перегружается.

Последний раз редактировалось to_; 18.08.2017 в 17:52.
to_ вне форума   Ответить с цитированием
Старый 18.08.2017, 20:55   #20
to_
Member
 
Регистрация: 04.01.2014
Сообщений: 81
Вес репутации: 0
to_ is an unknown quantity at this point
По умолчанию

Цитата:
Сообщение от to_ Посмотреть сообщение
Тогда флэшка не опознается после ребута.

PS: Похоже справился. Буду тестировать. Помогло reboot -n -f
Продолжаем разговор.... Выяснилась одна неприятная вещь, которой я не знаю. Не работает первая часть скрипта. Вернее она работает, но результат не тот.

PHP код:
FILE=/www/my.db

if [ -f $FILE ]; then

    
{
     echo 
"File exist" 
    
}
else
  {
  
reboot --
  
}
fi 
А дело в том, что после того как я выдергиваю флэшку, скрипт показывает, что файл /www/my.db существует! Хотя
PHP код:
root@CyberWrt:/www# ls -la
drwxr-xr-x    1 root     root          4096 Aug 18 20:24 .
drwxr-xr-x    1 root     root          4096 Jun 16 21:30 ..
drwxr-xr-x    1 root     root          4096 Dec  4  2015 cgi-bin
-rw-r--r--    1 root     root           894 Oct 26  2013 favicon.ico
-rw-r--r--    1 root     root            86 Oct 29  2013 index.html
-rw-r--r--    1 root     root           791 Nov 14  2013 menu.html
drwxr
-xr-x    4 root     root            66 Nov 25  2013 modules 
сделал
PHP код:
umount /overlay
не помогает!
Пожалуйста подскажите,как перечитать FS чтобы скрипт работал верно?
DF то-же показывает, что флешка вроде как есть!
PHP код:
root@CyberWrt:/www# df
Filesystem           1K-blocks      Used Available Use% Mounted on
rootfs                 1855744     38312   1703256   2
% /
/
dev/root                 1536      1536         0 100% /rom
tmpfs                    14468        64     14404   0
% /tmp
overlayfs
:/overlay     1855744     38312   1703256   2% /
tmpfs                      512        20       492   4% /dev 
to_ вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 08:43. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика