Jump to content

Включение и отключение Wi-Fi по расписанию


Recommended Posts

Update 28/02/2016. Прошу обратить внимание, теперь это штатная возможность прошивки и Entware больше не требуется. Инструкция ниже вам нужна только в том случае, если команда opkg прошивкой уже поддерживается, а schedule — ещё нет.

Для того, чтобы включать точку доступа в определённое время необходимо:

  • Установить Entware,
  • Установить необходимые пакеты:
    opkg install cron ndmq
     

     

  • Отредактировать файл /opt/etc/crontab, добавив в него следующие строчки:
    00 09 * * * root ndmq -p 'interface WifiMaster0/AccessPoint0 up' -P message
    00 21 * * * root ndmq -p 'interface WifiMaster0/AccessPoint0 down' -P message
    
     

     

  • Запустить cron вручную или перезагрузить роутер:
    /opt/etc/init.d/S10cron start
     

Здесь есть описание формата /opt/etc/crontab. В примере выше основная точка (WifiMaster0/AccessPoint0) будет ежедневно включаться (up) в 9:00 и выключаться (down) в 21:00.

Признаком того, что всё работает будут строчки лога:

[i] Dec  1 09:00:01 cron[16839]: (root) CMD (ndmq -p "interface WifiMaster0/AccessPoint0 up" -P message)
[i] Dec  1 09:00:01 ndm: Network::Interface::Base: "WifiMaster0/AccessPoint0": interface is up. 
…
[i] Dec  1 21:00:01 cron[16756]: (root) CMD (ndmq -p "interface WifiMaster0/AccessPoint0 down" -P message^I)
[i] Dec  1 21:00:01 ndm: Network::Interface::Base: "WifiMaster0/AccessPoint0": interface is down. 
 

Чтобы аналогичным образом управлять гостевой точкой, замените «WifiMaster0/AccessPoint0» на «WifiMaster0/AccessPoint1».

Link to comment
Share on other sites

Не могу понять как редактировать crontab?

crontab -e пишет:

no crontab for root - using an empty one

/opt/bin/sh: /bin/vi: not found

crontab: "/bin/vi" exited with status 127

Редактирую фаром через ftp/smb - в логе:

<78>Dec 7 23:38:14 cron[663]: (*system*) BAD FILE MODE (/opt/etc/crontab)

Пробую назначить права

chown -R admin:root /opt/etc/crontab /opt/etc/cron.d/

chmod -R a-rwx,u+rwX /opt/etc/crontab /opt/etc/cron.d/

Ошибок не выдаёт, но и не работает - BAD FILE MODE

Пробую сделать по аналогии:

00 09 * * * root ndmq -p "no access-list _WEBADMIN_Home deny tcp 192.168.10.120 255.255.255.255 0.0.0.0 0.0.0.0" -P message
00 21 * * * root ndmq -p "access-list _WEBADMIN_Home deny tcp 192.168.10.120 255.255.255.255 0.0.0.0 0.0.0.0" -P message	

Отдельно в SSH команда срабатывает

ndmq -p "access-list _WEBADMIN_Home deny tcp 192.168.10.120 255.255.255.255 0.0.0.0 0.0.0.0" -P message

Link to comment
Share on other sites

Не могу понять как редактировать crontab?

vi /opt/etc/crontab

Редактирую фаром через ftp/smb - в логе:

<78>Dec 7 23:38:14 cron[663]: (*system*) BAD FILE MODE (/opt/etc/crontab)

Пробую назначить права

chown -R admin:root /opt/etc/crontab /opt/etc/cron.d/

chmod -R a-rwx,u+rwX /opt/etc/crontab /opt/etc/cron.d/

Ошибок не выдаёт, но и не работает - BAD FILE MODE

Cron совершенно прав, bad file mode.

chmod 600 /opt/etc/crontab

  • Thanks 1
Link to comment
Share on other sites

Пробовал уже всё... Установил opkg начисто, не меняя пароль opkg update, opkg install cron, всё равно при запуске:

Dec 08 12:32:30cron[1160](CRON) STARTUP (V5.0)
Dec 08 12:32:30rootStarted cron from .
Dec 08 12:32:30cron[1160](*system*) BAD FILE MODE (/opt/etc/crontab)

Останавливал cron перед редактированием и chmod 600 /opt/etc/crontab....

А не может быть что я развернул opkg прямо на винте с торрентами, вроде NTFS - среди разрешенных систем в шапке темы?

Link to comment
Share on other sites

makc22, если используется cron из Entware, то обсуждение можно продолжить здесь.

А не может быть что я развернул opkg прямо на винте с торрентами, вроде NTFS - среди разрешенных систем в шапке темы?
Честно говоря, не знаю может ли NTFS и/или кинетиковский NTFS-драйвер это обеспечить. Работа cron проверялась на разделе ext3.
Link to comment
Share on other sites

Действительно, сделал флэшку EXT3 - на ней стартует.

Или дайте решение как запускать на NTFS, или уберите из инструкции по установке Entware-ng http://forums.zyxmon.org/viewtopic.php?p=13531#p13531

Link to comment
Share on other sites

Действительно, на NTFS-разделе:

BusyBox v1.24.1 (2015-12-07 11:01:26 MSK) built-in shell (ash)

~ # cd /opt/tmp/
/opt/tmp # touch file
/opt/tmp # ls -la file
-rwxrwxr-x    1 root     root             0 Dec  8 15:04 file

/opt/tmp # chmod 600 ./file
/opt/tmp # ls -la file
-rwxrwxr-x    1 root     root             0 Dec  8 15:04 file

/opt/tmp # chown nobody:nobody ./file
/opt/tmp # ls -la file
-rwxrwxr-x    1 nobody   nobody           0 Dec  8 15:04 file

Что странно. Драйвер tuxera, насколько знаю, должен полноценно поддерживаю линуксовые права доступа.

Link to comment
Share on other sites

Драйвер tuxera, насколько знаю, должен полноценно поддерживаю линуксовые права доступа.

Ни хрена он не поддерживает, только делает вид. Если диск перемонтировать, все настроенные права исчезают. Нормально можно работать только под рутом. Но скорость у него отличная — спору нет.

Link to comment
Share on other sites

Драйвер tuxera, насколько знаю, должен полноценно поддерживаю линуксовые права доступа.

Ни хрена он не поддерживает, только делает вид. Если диск перемонтировать, все настроенные права исчезают.

Спасибо за информацию, исключил упоминание NTFS из своей инструкции.
Нормально можно работать только под рутом. Но скорость у него отличная — спору нет.
На старой безродной медленной флешке установка Entware проходит вдвое быстрее, если отформатировать её в EXT2, а не в NTFS.
Link to comment
Share on other sites

Драйвер tuxera, насколько знаю, должен полноценно поддерживаю линуксовые права доступа.

Ни хрена он не поддерживает, только делает вид. Если диск перемонтировать, все настроенные права исчезают.

Спасибо за информацию, исключил упоминание NTFS из своей инструкции.

Только что пришёл ответ из Tuxera. Делают полноценную поддержку rwx-прав дополнительной опцией mount. Обещают за неделю управиться, ждём!

Link to comment
Share on other sites

  • 2 weeks later...
Драйвер tuxera, насколько знаю, должен полноценно поддерживаю линуксовые права доступа.

Ни хрена он не поддерживает, только делает вид. Если диск перемонтировать, все настроенные права исчезают.

Спасибо за информацию, исключил упоминание NTFS из своей инструкции.

Выложили экспериментальную прошивку с драйвером NTFS, поддерживающим сохранение -rwx- прав доступа. Пока только для трех устройств:

Link to comment
Share on other sites

Ни хрена он не поддерживает, только делает вид. Если диск перемонтировать, все настроенные права исчезают.

Спасибо за информацию, исключил упоминание NTFS из своей инструкции.

Выложили экспериментальную прошивку с драйвером NTFS, поддерживающим сохранение -rwx- прав доступа. Пока только для трех устройств:

Переустановил на NTFS, cron из этой ветки работает, спасибо!

Только постарайтесь до праздников поправить досадные косяки с [del]мультикастом,[/del] отображением клиентов "Домашней сети", Wi-Fi 2.4 на дашборде и др viewtopic.php?f=6&t=138&start=120

Link to comment
Share on other sites

  • 1 month later...
Выложили экспериментальную прошивку с драйвером NTFS, поддерживающим сохранение -rwx- прав доступа.

В -8 версии от 31.12 тот же драйвер, или откатиться придётся для поддержки NTFS?

Link to comment
Share on other sites

Выложили экспериментальную прошивку с драйвером NTFS, поддерживающим сохранение -rwx- прав доступа.

В -8 версии от 31.12 тот же драйвер, или откатиться придётся для поддержки NTFS?

Официальный релиз Туксера не делала, пока есть тестовый для указанных выше моделей (Keenetic II, Giga II, Ultra).
Link to comment
Share on other sites

  • 2 weeks later...
Для того, чтобы включать точку доступа в определённое время необходимо:

  • Установить Entware,
  • Установить пакет cron:
    opkg install cron


  • Отредактировать файл /opt/etc/crontab, добавив в него следующие строчки:
    00 09 * * * root ndmq -p "interface WifiMaster0/AccessPoint0 up" -P message
    00 21 * * * root ndmq -p "interface WifiMaster0/AccessPoint0 down" -P message
    


  • Запустить cron вручную или перезагрузить роутер:
    /opt/etc/init.d/S10cron start

Здесь есть описание формата /opt/etc/crontab. В примере выше основная точка (WifiMaster0/AccessPoint0) будет ежедневно включаться (up) в 9:00 и выключаться (down) в 21:00.

Признаком того, что всё работает будут строчки лога:

[i] Dec  1 09:00:01 cron[16839]: (root) CMD (ndmq -p "interface WifiMaster0/AccessPoint0 up" -P message)
[i] Dec  1 09:00:01 ndm: Network::Interface::Base: "WifiMaster0/AccessPoint0": interface is up. 
…
[i] Dec  1 21:00:01 cron[16756]: (root) CMD (ndmq -p "interface WifiMaster0/AccessPoint0 down" -P message^I)
[i] Dec  1 21:00:01 ndm: Network::Interface::Base: "WifiMaster0/AccessPoint0": interface is down. 

Чтобы аналогичным образом управлять гостевой точкой, замените «WifiMaster0/AccessPoint0» на «WifiMaster0/AccessPoint1».

Всё делал по данной инструкции...Выдает такие ошибки:

# /opt/etc/init.d/S10cron restart

Shutting down cron... done.

Starting cron... done.

/opt/etc/init.d/S10cron: line 11: 00: not found

/opt/etc/init.d/S10cron: line 12: 00: not found

Помогите советом.

Link to comment
Share on other sites

/opt/etc/init.d/S10cron: line 11: 00: not found

/opt/etc/init.d/S10cron: line 12: 00: not found

Помогите советом.

Совет — читать внимательнее. Похоже вы поместили cron-задания не в /opt/etc/crontab, а в /opt/etc/init.d/S10cron.
Link to comment
Share on other sites

/opt/etc/init.d/S10cron: line 11: 00: not found

/opt/etc/init.d/S10cron: line 12: 00: not found

Помогите советом.

Совет — читать внимательнее. Похоже вы поместили cron-задания не в /opt/etc/crontab, а в /opt/etc/init.d/S10cron.

Вы правы,прочёл не внимательно. Крон отработал ,но почему то только на отключение.вечером вайфай в заданное время отключился. Утром не включился. Вот конфиг ;

59 23 * * * root ndmq -p "interface WifiMaster0/AccessPoint0 down" -P message

10 07 * * * root ndmq -p "interface WifiMaster0/AccessPoint1 up" -P message

Link to comment
Share on other sites

59 23 * * * root ndmq -p "interface WifiMaster0/AccessPoint0 down" -P message

10 07 * * * root ndmq -p "interface WifiMaster0/AccessPoint1 up" -P message

Вы в 23:59 выключаете один интерфейс, а в 07:10 включаете другой. Продолжать?
Link to comment
Share on other sites

[off]-Вы правы,прочёл не внимательно.

-Вы в 23:59 выключаете один интерфейс, а в 07:10 включаете другой. Продолжать?

НЕвнимательность в квадрате :)[/off]

Link to comment
Share on other sites

[off]-Вы правы,прочёл не внимательно.

-Вы в 23:59 выключаете один интерфейс, а в 07:10 включаете другой. Продолжать?

НЕвнимательность в квадрате :)[/off]

Это я скопировал строчку от другого интерфейса...на айфоне редактором сложно пользоваться ;)))

image.jpeg.4f0feb76a5a21fc2350c5ac096723

Link to comment
Share on other sites

работает.

Подскажите, можно ли сделать расписание по дням недели?

Вполне. Используйте в качестве последнего (пятого) аргумента в crontab день недели на английском (можно несколько через запятую), например:

00 09 * * Mon,Tue,Wed root ndmq -p "interface WifiMaster0/AccessPoint0 up" -P message
00 21 * * Thu,Fri,Sat,Sun root ndmq -p "interface WifiMaster0/AccessPoint0 down" -P message

Link to comment
Share on other sites

  • 2 weeks later...

Вопрос: а можно ли всё это делать штатными средствами, без cron? В CLI (по крайней мере на Ultra II в 2.06.B.0) для интерфейса есть параметр shedule:

schedule - interface up/down schedule
(config-if)> schedule

Usage template:
        schedule {schedule}

Описания в документации не нашел. Как его использовать?

Link to comment
Share on other sites

Вопрос: а можно ли всё это делать штатными средствами, без cron? В CLI (по крайней мере на Ultra II в 2.06.B.0) для интерфейса есть параметр shedule:

schedule - interface up/down schedule
(config-if)> schedule

Usage template:
        schedule {schedule}

Описания в документации не нашел. Как его использовать?

Можно.

schedule — относительно новая команда, пока не реализована в Web-интерфейсе и не документирована. Кроме того, пока она управляет только интерфейсом up/down. Скажем, дёрнуть питание по USB не может.

Инструкция

  1. Создайте расписание.
            schedule - schedule configuration
    
    Usage template:  
            schedule {schedule}
    
    (config)> schedule WIFI
    Core::Schedule::Manager: Created schedule "WIFI".
    
    (config-sched)> 
    


  2. Запрограммируйте два действия: start и stop. Можно задать по нескольку правил на каждое. У действий три аргумента: минуты, часы, дни недели. Дни недели указываются номером от 0 до 7, где 0 и 7 обозначают воскресенье. Можно перечислить дни недели через запятую или поставить *, то есть каждый день.
    Например, укажем start в 9 утра и stop в 9 вечера с понедельника по пятницу:
    (config-sched)> action ?
    
    Usage template:  
              action {action} {min} {hour} {dow}
    
      Choose:
              start 
               stop 
    
    (config-sched)> action start 0 9 1,2,3,4,5
    Core::Schedule::Manager: Updated schedule "WIFI".
    (config-sched)> action stop 0 21 1,2,3,4,5
    Core::Schedule::Manager: Updated schedule "WIFI".
    (config-sched)> exit
    (config)>
    


  3. Подключите расписание к интерфейсу
    Внимание: расписание вступает в силу в момент подключения, т.е. сработает ближайшее действие из прошлого. Допустим, если сегодня выходной, и Вы управляете устройством через Wi-Fi, то придется идти за проводом или перезагружать.
    (config)> interface WifiMaster0 schedule WIFI
    Network::Interface::Schedule: Assigned schedule "WIFI" to WifiMaster0.
    


    Если устройство двухдиапазонное, то

    (config)> interface WifiMaster1 schedule WIFI
    Network::Interface::Schedule: Assigned schedule "WIFI" to WifiMaster1.
    


  4. Сохраните настройки
    (config)> system configuration save
    

  • Thanks 1
Link to comment
Share on other sites

ndm - благодарю за развернутый ответ.

Есть вопрос: чтобы в течение дня включать и отключать интерфейс несколько раз (например выкл в 09:00, вкл в 13:00, выкл в 14:00, вкл в 18:00) нужно создавать несколько расписаний? Есть ли возможность привязать несколько расписаний к одному интерфейсу? Или есть возможность задать многократное включение/отключение в одном расписании?

Link to comment
Share on other sites

ndm - благодарю за развернутый ответ.

Есть вопрос: чтобы в течение дня включать и отключать интерфейс несколько раз (например выкл в 09:00, вкл в 13:00, выкл в 14:00, вкл в 18:00) нужно создавать несколько расписаний? Есть ли возможность привязать несколько расписаний к одному интерфейсу? Или есть возможность задать многократное включение/отключение в одном расписании?

Многократное включение/отключение в одном расписании. Несколько расписаний привязать нельзя.
Link to comment
Share on other sites

У действий три аргумента: минуты, часы, дни недели. Дни недели указываются номером от 0 до 7, где 0 и 7 обозначают воскресенье. Можно перечислить дни недели через запятую или поставить *, то есть каждый день.

Странно:

(config-sched)> action stop 0 2 6,7
Core::Schedule::Manager error[25297021]: invalid day of week: 7.

По логике маршрутизатора неделя начинается с воскресенья?

0 - воскресенье, 6 - суббота?

Link to comment
Share on other sites

По логике маршрутизатора неделя начинается с воскресенья?

0 - воскресенье, 6 - суббота?

Это стандартный кроновский синтаксис, как известно:

0 - воскресенье

1 - понедельник

2 - вторник

3 - среда

4 - четверг

5 - пятница

6 - суббота

7 - воскресенье

Универсально для всех: и кто начинает неделю с воскресенья, и кто заканчивает.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...