Wiki

Clone wiki

rt-n56u / RU / Использование cron

Использование cron

В составе прошивке есть cron — сервис, позволяющий периодически выполнять определённые скрипты и/или команды в заданное время.

  • Перейдите на страницу веб-интерфейса Администрирование > Сервисы,
  • Включите Сервис Cron (планировщик)?,
  • Поместите нужные задания в поле Задания планировщика (Crontab),
  • Нажмите кн. Применить.

Пример строки задания:

00 06 * * * ether-wake -i br0 XX:XX:XX:XX:XX:XX

00 06 * * * — это время, когда задание должно быть выполнено (в примере "ежедневно в шесть утра"), ether-wake -i br0 XX:XX:XX:XX:XX:XX — команда, которая должна быть выполнена (в примере "разбудить в локалке ПК с MAC'ом XX:XX:XX:XX:XX:XX). Детали синтаксиса crontab можно посмотреть здесь.


Примечание

При старте сron наследует переменную $PATH из окружения прошивки (без /opt/bin и /opt/sbin), поэтому в заданиях и выполняемых скрипах необходимо прописывать полные пути до каждого исполняемого файла за пределами прошивки. Чтобы этого избежать, используйте shell-враппер /etc/storage/cron/shell-wrapper.sh:

#!/bin/sh

# Pull $PATH and other settings from /etc/profile and /opt/etc/profile
. /etc/profile

# Shell keywords shouldn't have a "-c" prefix
[ "$1" = "-c" ] && shift

# Call cron job
SHELL=/bin/sh eval $@

Сделайте его исполняемым:

chmod +x /etc/storage/cron/shell-wrapper.sh

и поместите первой строкой в поле crontab:

SHELL=/etc/storage/cron/shell-wrapper.sh

Отдельное спасибо @themiron за отладку враппера.

Updated