Запуск сценариев по событию
From DD-WRT Wiki
Revision as of 06:05, 24 December 2019 (edit) Atatob (Talk | contribs) m (Изменил ссылку на статью "Переназначение кнопок маршрутизатора") ← Previous diff |
Revision as of 06:49, 24 December 2019 (edit) (undo) Atatob (Talk | contribs) (Обновил статью) Next diff → |
||
Line 1: | Line 1: | ||
{{Languages|Script Execution}} | {{Languages|Script Execution}} | ||
- | ==Введение== | + | == Введение == |
- | + | [https://ru.wikipedia.org/wiki/Сценарий_командной_строки Сценарий командной строки], или сценарий командной оболочки, (англ. shell script) — программа, выполняемая командной оболочкой операционной системы. Написанием сценариев вы можете создавать сложные программы, конструируя их, как из кирпичиков, из существующих утилит UNIX. Интерпретатор считывает строки из файла-скрипта и выполняет их, как если бы они были введены пользователем в командной строке. | |
- | Иногда необходимо, чтобы сценарии выполнялись автоматически | + | |
+ | Иногда необходимо, чтобы сценарии выполнялись автоматически при наступлении каких-либо событий. Эта статья объясняет, как обеспечить выполнение сценариев в определенный момент. | ||
== Общая информация == | == Общая информация == | ||
- | По умолчанию DD-WRT | + | По умолчанию DD-WRT осуществляет поиск сценариев в следующих каталогах: |
* ''/etc/config/'' | * ''/etc/config/'' | ||
* ''/jffs/etc/config/'' | * ''/jffs/etc/config/'' | ||
Line 12: | Line 13: | ||
== Типы сценария == | == Типы сценария == | ||
- | + | Каждый сценарий, помещённый в один из каталогов выше, должен иметь определенное расширение в зависимости от того, в какой момент (при наступлении какого события) сценарий будет запускаться системой DD-WRT. | |
- | + | ||
- | + | ||
- | + | ||
{| border=1 cellspacing=0 cellpadding=5 | {| border=1 cellspacing=0 cellpadding=5 | ||
| '''Расширение''' | | '''Расширение''' | ||
- | | ''' | + | | '''Назначение''' |
|- | |- | ||
| .startup | | .startup | ||
- | | будет выполняться при системном запуске, обычно время начальной загрузки и'''перед''' настройкой брандмауэра. | + | | будет выполняться при системном запуске, обычно время начальной загрузки и '''перед''' настройкой брандмауэра. |
|- | |- | ||
| .prewall | | .prewall | ||
Line 28: | Line 26: | ||
|- | |- | ||
| . wanup | | . wanup | ||
- | | будет выполняться всякий раз, когда интерфейс WAN восстанавливает работоспособность и '''после''' брандмауэра. | + | | будет выполняться всякий раз, когда интерфейс WAN восстанавливает работоспособность и '''после''' брандмауэра. |
|- | |- | ||
| .if | | .if | ||
| будет выполняться всякий раз, когда любой из интерфейсов восстанавливает работоспособность и '''после''' брандмауэра. | | будет выполняться всякий раз, когда любой из интерфейсов восстанавливает работоспособность и '''после''' брандмауэра. | ||
|- | |- | ||
- | | . ipup | + | | .ipup |
|запускается, когда соединение PPP восстановлено после разъединения и '''после''' брандмауэра. | |запускается, когда соединение PPP восстановлено после разъединения и '''после''' брандмауэра. | ||
|- | |- | ||
- | | . ipdown | + | | .ipdown |
- | | запускается, когда соединение PPP было выключено | + | | запускается, когда соединение PPP было выключено. |
|- | |- | ||
- | |. sesbutton | + | |.sesbutton |
- | | выполняется, при нажатии кнопки [[Переназначение кнопок маршрутизатора|SES (или AOSS, EZ-SETUP)]] на маршрутизаторе | + | | выполняется, при нажатии кнопки [[Переназначение кнопок маршрутизатора|SES (или AOSS, EZ-SETUP)]] на маршрутизаторе. |
|} | |} | ||
- | + | Не забудьте, что все файлы сценариев должны должны быть исполняемыми — каждому файлу нужно установить права доступа. Для этого используется команда "chmod +x файл_сценария.". Сценарии .wanup могут выполняться несколько раз, во время загрузки маршрутизатора (см. тему форума http://www.dd-wrt.com/phpBB2/viewtopic.php?p=433984). При использовании WinSCP для передачи файлов на маршрутизатор, после загрузки можно просто нажать правой кнопкой мыши на имени файла и выбрать "Properties" («Свойства»), чтобы изменить разрешения. | |
- | + | ||
- | == | + | == Выполнение сценариев с другим расширением или из другого каталога == |
- | Для выполнения | + | |
+ | Для выполнения сценариев с расширением, не указанным в таблице выше, или расположенных в другом каталоге, можно создать следующий сценарий: | ||
<pre> | <pre> | ||
Line 55: | Line 53: | ||
</pre> | </pre> | ||
- | + | Измените путь /jffs/etc/config и расширение *.myextension на свои. | |
- | + | === Как это работает === | |
+ | Команда ''sh /jffs/etc/config/*.myextension'' выполнит каждый сценарий, заканчивающийся на .myextension, найденный в каталоге /jffs/etc/config. Установите это значение для переменной rc_startup и скрипты *.myextension будут загружаться каждый раз при запуске маршрутизатора. | ||
- | == | + | == Автозагрузка при запуске маршрутизатора == |
- | За запуск при старте отвечает переменная rc_startup | + | За запуск сценариев при старте маршрутизатора отвечает переменная NVRAM '''rc_startup'''. См. основную статью [[Автоматически запускаемые сценарии]]. |
- | + | ||
+ | Введите в коммандной строке: | ||
<pre> | <pre> | ||
~# nvram set rc_startup="/jffs/etc/config/*.myextension" | ~# nvram set rc_startup="/jffs/etc/config/*.myextension" | ||
Line 67: | Line 67: | ||
~# echo "/jffs/dir/my_scripts &" >> /jffs/etc/config/*.myextension | ~# echo "/jffs/dir/my_scripts &" >> /jffs/etc/config/*.myextension | ||
</pre> | </pre> | ||
- | Для задержки используется ключ ="sleep" | + | |
+ | Для задержки используется ключ ="sleep": | ||
<pre> | <pre> | ||
~# nvram set rc_startup="sleep 30; /jffs/etc/config/*.myextension" | ~# nvram set rc_startup="sleep 30; /jffs/etc/config/*.myextension" | ||
Line 73: | Line 74: | ||
</pre> | </pre> | ||
- | [[Category:Scripts/ru]] | + | == Ссылки == |
+ | * [[LED Scripts]] | ||
+ | * [[Автоматически запускаемые сценарии]] | ||
+ | * [[Useful Scripts]] | ||
+ | |||
+ | [[Category: Русская документация]] | ||
+ | [[Category: Scripts/ru]] |
Revision as of 06:49, 24 December 2019
English • Deutsch • Español • Français • Italiano • 日本語 • Polski • Português • Русский • Svenska • 中文(中国大陆) • 中文(台灣) • |
Contents |
Введение
Сценарий командной строки, или сценарий командной оболочки, (англ. shell script) — программа, выполняемая командной оболочкой операционной системы. Написанием сценариев вы можете создавать сложные программы, конструируя их, как из кирпичиков, из существующих утилит UNIX. Интерпретатор считывает строки из файла-скрипта и выполняет их, как если бы они были введены пользователем в командной строке.
Иногда необходимо, чтобы сценарии выполнялись автоматически при наступлении каких-либо событий. Эта статья объясняет, как обеспечить выполнение сценариев в определенный момент.
Общая информация
По умолчанию DD-WRT осуществляет поиск сценариев в следующих каталогах:
- /etc/config/
- /jffs/etc/config/
- /mmc/etc/config/
- /tmp/etc/config/
Типы сценария
Каждый сценарий, помещённый в один из каталогов выше, должен иметь определенное расширение в зависимости от того, в какой момент (при наступлении какого события) сценарий будет запускаться системой DD-WRT.
Расширение | Назначение |
.startup | будет выполняться при системном запуске, обычно время начальной загрузки и перед настройкой брандмауэра. |
.prewall | будет выполняться всякий раз, когда интерфейс WAN восстанавливает работоспособность и перед брандмауэром. |
. wanup | будет выполняться всякий раз, когда интерфейс WAN восстанавливает работоспособность и после брандмауэра. |
.if | будет выполняться всякий раз, когда любой из интерфейсов восстанавливает работоспособность и после брандмауэра. |
.ipup | запускается, когда соединение PPP восстановлено после разъединения и после брандмауэра. |
.ipdown | запускается, когда соединение PPP было выключено. |
.sesbutton | выполняется, при нажатии кнопки SES (или AOSS, EZ-SETUP) на маршрутизаторе. |
Не забудьте, что все файлы сценариев должны должны быть исполняемыми — каждому файлу нужно установить права доступа. Для этого используется команда "chmod +x файл_сценария.". Сценарии .wanup могут выполняться несколько раз, во время загрузки маршрутизатора (см. тему форума http://www.dd-wrt.com/phpBB2/viewtopic.php?p=433984). При использовании WinSCP для передачи файлов на маршрутизатор, после загрузки можно просто нажать правой кнопкой мыши на имени файла и выбрать "Properties" («Свойства»), чтобы изменить разрешения.
Выполнение сценариев с другим расширением или из другого каталога
Для выполнения сценариев с расширением, не указанным в таблице выше, или расположенных в другом каталоге, можно создать следующий сценарий:
for I in `/bin/ls /jffs/etc/config/*.myextension`;do sh $I & done
Измените путь /jffs/etc/config и расширение *.myextension на свои.
Как это работает
Команда sh /jffs/etc/config/*.myextension выполнит каждый сценарий, заканчивающийся на .myextension, найденный в каталоге /jffs/etc/config. Установите это значение для переменной rc_startup и скрипты *.myextension будут загружаться каждый раз при запуске маршрутизатора.
Автозагрузка при запуске маршрутизатора
За запуск сценариев при старте маршрутизатора отвечает переменная NVRAM rc_startup. См. основную статью Автоматически запускаемые сценарии.
Введите в коммандной строке:
~# nvram set rc_startup="/jffs/etc/config/*.myextension" ~# nvram commit ~# echo "/jffs/dir/my_scripts &" >> /jffs/etc/config/*.myextension
Для задержки используется ключ ="sleep":
~# nvram set rc_startup="sleep 30; /jffs/etc/config/*.myextension" ~# nvram commit