Настройка действий по расписанию «Crontabs»
Для автоматизации обслуживания и администрирования работы роутеров предусмотрена возможность выполнения команд, пользовательских скриптов, по заданному расписанию. Выполнение команд можно гибко настроить, используя минуты, часы, дни месяца, месяцы, дни недели или их комбинации.
Чтобы настроить выполнение команд по расписанию перейдите в web-интерфейсе на вкладку Service в раздел Crontabs. Для добавления команды в расписание, укажите время и команду. Добавление осуществляется посредством кнопки + («плюс»), а удаление — кнопкой - («минус»). Отметка в столбце Enable позволяет включать, или отключать выполнение инструкции без ее удаления.
Время выполнения указывается в полях: Minute (минута, от «0» до «59»), Hour (час, от «0» до «23»), Day (день, от «1» до «31»), Month (месяц, от «1» до «12»), Weekday (день недели, от «0» до «6», где воскресение — это «0»), а сама команда указывается в поле Command. На рисунке ниже представлен пример комады по перезагрузке роутера в первую минуту каждого часа. Для сохранения выполненных настроек используйте кнопку Save.
Все поля обязательно должны быть заполнены
![crontab 2](../_images/crontab-2.png)
Рекомендации по заполнению полей
-
При перечислении минут, часов дней и месяцев указывайте требуемые значения через запятую. Например, запись в поле Minute: 10,20,30 то команда будет выполняться каждую 10,20,30 минуту.
-
При необходимости выполнения команды в течение всего диапазона времени (каждый час, день, месяц) используйте символ «*».
-
Для выполнения команд через обозначенный интервал используйте сочетание символов «*/Y», где Y - интервал, через которое будет выполняться действие.
Например, запись «*/2» в поле Hour означает, что команда будет выполнятся каждые два часа.
-
При необходимости указать какой-то интервал из всего диапазона значений используйте символ «-». Например, запись «1-5» в поле Weekday означает, что инструкция выполняется в дни недели с понедельника по пятницу. Значения указываются от меньшего к большему, чтобы заданные значения интервала были в рамках одного диапазона. При необходимости разбейте выполнение команды на две инструкции. Например, если требуется выполнение действия в вечернее и ночное время с 21:00 до 6:00 используйте две инструкции с 21:00 до 23:00 и с 00:00 до 6:00.
-
При необходимости задать для команды и перечисление значений (в 9, 12 и 16 часов) и интервал значений (с 18 до 23 часов) в одном поле, разбейте эту инструкцию на две, отдельно для причисления и отдельно для интервала.
-
Значения от 1 до 9 записываются без 0 перед ними. Для выполнения команды в пять часов или в пятый день месяца, корректной будет запись «5» в соответствующих полях.
![crontab 1](../_images/crontab-1.png)
При необходимости проверить корректность заданных значений можете воспользоваться сервисом: https://crontab.guru/ .
В качестве команды можно использовать предварительно загруженные скрипт пользователя, который рекомендуется помещать в энергонезависимой памяти роутера. Для этого отведен отдельный каталог в файловой системе роутера – /opt, чтобы скрипт не был удален при сбросе на заводские настройки или при обновление прошивки роутера. Скрипт можно поместить в каталог через консоль роутера используя протокол SCP, либо воспользоваться утилитой WinSCP.
После копирования скрипта в каталог /opt необходимо дать права на выполнение вашему скрипту. Для этого подключаетесь к роутеру по ssh, и выполняете команду:
chmod +x /opt/my_script.sh
Для скриптов необходимо указывать их полный путь в поле Command. Скрипты могут быть написаны на языке MicroPython или на языке командного интерпретатора (shell).
Подробнее о планировщике Crontab можно прочитать на сайте: https://ru.wikipedia.org/wiki/Cron .