Настройка действий по расписанию «Crontabs»

#роутеры #20.x

Для автоматизации обслуживания и администрирования работы роутеров предусмотрена возможность выполнения команд и пользовательских скриптов по заданному расписанию.

Расписание можно гибко настроить, используя минуты, часы, дни месяца, месяцы, дни недели или их комбинации.

Чтобы настроить выполнение команд по расписанию:

  1. Перейдите в web-интерфейсе на вкладку Service в раздел Crontabs.

  2. Для добавления команды в расписание, укажите время и команду.

    Добавление осуществляется посредством кнопки + («плюс»), а удаление — кнопкой - («минус»). Отметка в столбце Enable позволяет включать, или отключать выполнение инструкции без ее удаления.

    Команда указывается в поле Command. Время выполнения указывается в полях:

    • Minute (минута, от «0» до «59»)

    • Hour (час, от «0» до «23»)

    • Day (день, от «1» до «31»)

    • Month (месяц, от «1» до «12»)

    • Weekday (день недели, от «0» до «6», где воскресение — это «0»)

На рисунке ниже представлен пример комады по перезагрузке роутера в первую минуту каждого часа. Для сохранения выполненных настроек используйте кнопку Save.

Все поля обязательно должны быть заполнены

crontab 2

Рекомендации по заполнению полей

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

    Например, если запись в поле Minute: 10,20,30, то команда будет выполняться каждую 10, 20, 30 минуту.

  2. При необходимости выполнения команды в течение всего диапазона времени (каждый час, день, месяц) используйте символ «*».

  3. Для выполнения команд через обозначенный интервал используйте сочетание символов «*/Y», где Y - интервал, через которое будет выполняться действие.

    Например, запись «*/2» в поле Hour означает, что команда будет выполнятся каждые два часа.

  4. При необходимости указать какой-то интервал из всего диапазона значений, используйте символ «-».

    Например, запись «1-5» в поле Weekday означает, что инструкция выполняется в дни недели с понедельника по пятницу.

  5. Значения указываются от меньшего к большему, чтобы заданные значения интервала были в рамках одного диапазона. При необходимости разбейте выполнение команды на две инструкции.

    Например, если требуется выполнение действия в вечернее и ночное время с 21:00 до 6:00, используйте две инструкции: с 21:00 до 23:00 и с 00:00 до 6:00.

  6. При необходимости задать для команды перечисление значений (в 9, 12 и 16 часов) и интервал значений (с 18 до 23 часов) в одном поле, разбейте эту инструкцию на две: отдельно для причисления и отдельно для интервала.

  7. Значения от 1 до 9 записываются без 0 перед ними.

    Для выполнения команды в пять часов или в пятый день месяца, корректной будет запись «5» в соответствующих полях.

crontab 1

При необходимости проверить корректность заданных значений, воспользуйтесь сервисом Crontab.Guru.

В качестве команды можно использовать предварительно загруженные скрипт пользователя, который рекомендуется помещать в энергонезависимой памяти роутера.
Для этого отведен отдельный каталог в файловой системе роутера – /opt, чтобы скрипт не был удален при сбросе на заводские настройки или при обновлении прошивки роутера.
Скрипт можно поместить в каталог через консоль роутера, используя протокол SCP, либо воспользоваться утилитой WinSCP.

После копирования скрипта в каталог, /opt необходимо дать права на его выполнение. Для этого подключитесь к роутеру по ssh и выполните команду:

chmod +x /opt/my_script.sh

Для скриптов необходимо указывать их полный путь в поле Command. Скрипты могут быть написаны на языке MicroPython или на языке командного интерпретатора (shell).

Подробнее о планировщике Crontab можно прочитать на сайте.