Jump to content

iFinder

Forum Members
  • Posts

    175
  • Joined

  • Last visited

Posts posted by iFinder

  1. 3 минуты назад, keenet07 сказал:

    По счетчику четное/нечетное нажатие

    Где хранить, Как получать доступ, А после сброса по питанию переменная будет сброшена, разве что хранить в файле. Узнать состояние сложнее, но изящнее. Но в любом случае спасибо за совет.

  2. Ну а теперь верх хотелок:

    У меня три WiFi-сетки. Две управляются кнопкой стандартно. Короткое нажатие - Гостевая сеть, Двойное - Служебная сеть.

    Логично было бы переключать третью (Домашнюю) сеть Долгим нажатием кнопки.

    Именно переключать, а не задействовать два разных нажатия кнопки как в моём скрипте выше.

    Но как можно узнать текущее состояние интерфейса в скрипте ?

    Напишите пожалуйста, кто знает, строчку или две кода для этого. 

  3. 5 минут назад, ajs сказал:

    Как по мне, одного fi не хватает

    Вот описание:

    Else if и elif

    elif

    elif -- это краткая форма записи конструкции else if. Применяется для построения многоярусных инструкций if/then.

    if [ condition1 ]
    then
       command1
       command2
       command3
    elif [ condition2 ]
    # То же самое, что и else if
    then
       command4
       command5
    else
       default-command
    fi

    И при тестовом запуске из CLI/SSH всё нормально.

  4. Итак подвожу итоги:

    СОЗДАНИЕ СКРИПТА РЕАКЦИИ НА НАЖАТИЕ КНОПКИ KEENETIC

    1. Создаю файл скрипта: /opt/etc/ndm/button.d/PressButtons.bash

    2. Наполняю его содержимым:
     

    Скрытый текст
    
    #!/opt/bin/bash
    # Версия 010 (Тесты)
    
    # ====== Записываем в журнал Keenetic для истории и отладки
    #logger "button=$button"   # Варианты: WLAN, FN1, FN2
    #logger "action=$action"   # Варианты: click, double-click, hold
    logger "button=$button  action=$action"
    
    # ++++++ Нажата кнопка FN1 - Анализируем тип нажатия
    if [ "$button" == "FN1" ]
    then
        # +++ Кнопка FN1 один раз - Включаем WiFi-сеть  # Можно elif
        if [ "$action" == "click" ]
        then
            #ndmq -x -p "interface WifiMaster0/AccessPoint1 up"
            #logger "Гостевая WiFi-сеть включена одним нажатием кнопки FN1."
            ndmq -x -p "interface WifiMaster0/AccessPoint0 up"
            logger "Домашняя WiFi-сеть включена одним нажатием кнопки FN1."
            #continue
        # +++ Кнопка FN1 два раза - Отключаем WiFi-сеть
        else if [ "$action" == "double-click" ]
        then
            #ndmq -x -p "interface WifiMaster0/AccessPoint1 down"
            #logger "Гостевая WiFi-сеть отключена двойным нажатием кнопки FN1."
            ndmq -x -p "interface WifiMaster0/AccessPoint0 down"
            logger "Домашняя WiFi-сеть отключена двойным нажатием кнопки FN1."
        fi
    fi

     

    3. Делаю его исполняемым:

    chmod +x /opt/etc/ndm/button.d/PressButtons.bash

    4. Указываю в Настройках Keenetic реакцию на нажатие кнопки FN1:

    Однократное нажатие =  "OPKG - Запуск скриптов button.d"

    Двукратное нажатие =  "OPKG - Запуск скриптов button.d"

    5. Проверил запуском из CLI/SSH

    /opt/etc/ndm/button.d/PressButtons.bash

    НО ПРИ НАЖАТИИ КНОПКИ FN1 в журнале Keenetic появились записи:

    Окт 29 17:56:28
     
    root
    button=FN1 action=click
    Окт 29 17:56:28
     
    ndm
    Opkg::Manager: /opt/etc/ndm/button.d/PressButtons.bash: /opt/etc/ndm/button.d/PressButtons.bash: line 34: syntax error: unexpected end of file.
    Окт 29 17:56:28
     
    ndm
    Opkg::Manager: /opt/etc/ndm/button.d/PressButtons.bash: exit code 2.

     

    Может кто знает, в чём причина ?

  5. 6 минут назад, keenet07 сказал:

    Проверьте на всякий случай ещё раз права на файле скрипта. Разрешение на запуск.

    И убедитесь, что вы правильную кнопку нажимаете в правильной комбинации нажатий подряд.

    Получилось, оказалось перепутал кнопки FN: 

    Окт 29 15:27:24

     

    root
    button=FN1
    Дальше дело техники !
  6. 5 минут назад, r13 сказал:

    Если вместо echo использовать logger , то результат увидите в логе кинетика. 

    #!/opt/bin/bash
    logger "button=$button"
    #interface WifiMaster0/AccessPoint1 up
    #echo "Гостевая сеть запущена !"

    В логе кинетика по-прежнему ничего нет

     

     

  7. 1 минуту назад, keenet07 сказал:

    Если вдруг не заметили, для запуска Гостевой сети там уже есть предустановка. Скрипт не требуется.

    Не только заметил, а несколько лет пользуюсь. Указал для примера: удобно контролировать и у всех есть.

  8. В настройках Keenetic можно указать действие по нажатию кнопок: OPKG - Запуск скриптов button.d

    Предполагаю, что реализации этой возможности надо:

    1. Выбрать в WEB-интерфейсе Keenetic для конкретной кнопки "OPKG - Запуск скриптов button.d"

    2. Создать файл /opt/etc/ndm/button.d/buttons.sh

    3. Написать скрипт в файле buttons.sh:

    - Из скрипта будут доступны дополнительные переменные окружения:

    button — название кнопкина
    action — тип нажатия

    - Задача будет, например, запустить Гостевую сеть

    Вот набросок того, что предполагаю:

    #!/opt/bin/bash
    
    interface WifiMaster0/AccessPoint1 up
    
    echo "Гостевая сеть запущена !"

    4. Сделать скрипт исполняемым:

    chmod +x /opt/etc/ndm/button.d/buttons.sh

    Вопросы:

    1. Соответствует ли действительности указанный выше подход ?

    2. Как должен выглядеть скрипт buttons.sh ?

    3. Как должен выглядеть скрипт buttons.sh с учётом какая кнопка нажата ?

  9. 2 часа назад, iFinder сказал:

    Начинать новую тему ?

    Не стоит. После танцев с бунами выяснилось, что файл архива битый. Взял другой - заработало.

    3 часа назад, iFinder сказал:

    Жду и не могу понять как узнать,что дождался ?

    Признаком выполнения процесса будет убывание свободного места на USB-флэшке
    Длительность процесса для 10Гб файла архива ~2 минуты
    Признаком окончания будет удаление папки 'install'

    • Upvote 1
  10. 5 минут назад, TheBB сказал:

    Время распаковки зависит от мощности устройства и размера архива. Деталей не помню.

    Жду уже 23 минуты.

    Появилось несколько папок:

    home\
    Install\
    lib\
    lost+found\
    sbin\
    share\
    tmp\

    Размер архива \\GigaYN\Entware\Install\GigaYN-Entware-backup-2019-10-16_12-09.tar.gz всего 20 МБ

    Размер Entware был около 100 Мб !

    Через 24 минуты размер всего 25 из них 20 архив !

    Что-то снова не так. Что делать ?

    Putty тоже не подключается.

     

  11. 23 часа назад, iFinder сказал:

    21. создать каталог "install" и в него скопировать архив с резервной копией. В web устройства выбрать нужный накопитель, заполнить строку инициализации `/opt/etc/init.d/rc.unslung`, нажать "Сохранить" и ждать окончание процесса распаковки.

    Жду и не могу понять как узнать,что дождался ?

  12. 3 часа назад, iFinder сказал:

    Обновляются CLI-командами `opkg update && opkg upgrade`.

     

    1 час назад, TheBB сказал:

    Смотря, как интерпретировать ))) Command Line Interface/Cisco Like Interface (https://help.keenetic.com/hc/ru/articles/213965889) или Command Line Interface/SSH - (Secure Shell)

    Как всегда, дельное уточнение. Конечно надо было мне написать везде CLI/SSH-командами, например:

    Обновляются CLI/SSH-командами `opkg update && opkg upgrade`.

    Жаль, что форум не даёт возможности исправить.

  13. 29 минут назад, TheBB сказал:

    В web - "Общие настройки" ("Общие настройки системы") => "Назначение кнопок и индикаторов интернет-центра"

    Да это там, но что нужно сделать чтобы это заработало ? Предполагаю, что где-то надо создать файл button.d.

    Ещё накопал на форуме: Opkg: передача в скрипт /opt/etc/ndm/button.d дополнительных переменных окружения:

    • button — название кнопки
    • action — тип нажатия

    Значит ещё и другие переменные окружения есть. Как это всё вместе соединить ?

    А может сделать для этого отдельную тему ?

  14. 1 минуту назад, TheBB сказал:

    Для "приключений на разные части тела", есть ключ "-l" (umount -l /dev/...).

    Нет приключений и так хватает. Но в общем понятно: сама себя без приключений не размонтирует, а значит не проверит.

    Но на будущее учту такую возможность !

  15. На основании ответов TheBB, сделал себе памятку и делюсь с новичками.

                    РЕЗЕРВИРОВАНИЕ Entware

            НА КОМПЬЮТЕРЕ:
    1. Подключиться с помощью Putty к Entware:
        - {IP вашего Keenetic} порт SSH 222
        - Устанавить ангийскую раскладку
        - Ввести логин root
        - Ввести пароль keenetic
    2. Сделать резервную копию (команда обязательно с точкой в конце !):

    ~ # tar cvzf /opt/{Имя Вашего Keenetic}-Entware-backup-`date "+%Y-%m-%d_%H-%M"`.tar.gz -C /opt .


    3. Закрыть Putty:

    ~ # exit


    4. Забрать из папки: \\{IP вашего Keenetic}\Entware\
        созданный файл: {Имя Вашего Keenetic}-Entware-backup-2019-10-16_12-09.tar.gz
    5. Переименовать файл, указав состояние Entware (например - 'перед обновлением')

                    ОБНОВЛЕНИЕ Entware

            НА КОМПЬЮТЕРЕ:
    1. Сделать резервную копию Entware перед обновлением (см. выше)
    2. Подключиться с помощью Putty к Entware:
        - {IP вашего Keenetic}порт SSH 222
        - Устанавить английскую раскладку
        - Ввести логин root
        - Ввести пароль keenetic
    3. Выполнить обновление перечня установленных пакетов:

    ~ # opkg update


    4. Выполнить обновление:

    ~ # opkg upgrade


    5. Если будут ошибки, то обязательно выполнить обновление ещё раз
    6. Сделать резервную копию Entware после обновления (см. выше)

                    ВОССТАНОВЛЕНИЕ Entware НА НОВЫЙ USB-НОСИТЕЛЬ

            НА КОМПЬЮТЕРЕ:
    1. Вставить USB-флэшку в Комп
    2. Отформатировать USB-флэшку в NTFS (все возможные: NTFS, HFS, Ext2/Ext3/Ext4)
        1-ЫЙ ВАРИАНТ (НА КОМПЕ):
    3. Создать в корне папку 'install'
    4. Скопировать в неё архив с резервной копией
        2-ОЙ ВАРИАНТ (НА РОУТЕРЕ УДАЛЁННО):
    - Вставить USB-флэшку в Keenetic
    - Предоставить удалённый доступ и Зайти на USB-флэшку удалённо через SMB
    3. Удалённо создать в корне папку 'install'
    4. Удалённо скопировать в неё архив с резервной копией

            НА РОУТЕРЕ KEENETIC:
    5. Вставить USB-флэшку в Keenetic (если не была вставлена ранее)
    6. В WEB-интерфейсе Keenetic указать строку инициализации: '/opt/etc/init.d/rc.unslung'
    7. Нажать 'Сохранить'
    8. Дождаться окончания процесса распаковки
     

×
×
  • Create New...