На самом деле в Entware два варианта планировщика cron - в виде апплета busybox и в виде отдельного пакета. Этот пост посвящен апплету busybox.
Для того, чтобы использовать этот вариант cron следует установить busybox (если это не сделано раньше)
Код: Выделить всё
opkg install busybox
Попробуем создать задание с помощью утилиты crontab
Код: Выделить всё
crontab -e
Получим "ругательное сообщение" что нет нужной папки
Код: Выделить всё
crontab: can't change directory to '/opt/var/spool/cron/crontabs': No such file or directory
Создадим эту папку:
Код: Выделить всё
mkdir -p /opt/var/spool/cron/crontabs
По умолчанию crontab использует очень удобный редактор vi. Но этот редактор непривычен новичкам. Новечкам рекомендую поставить nano `opkg install nano` или другой привычный редактор и вызывать crontab так
Код: Выделить всё
EDITOR='/opt/bin/nano' crontab -e
В результате будет вызван редактор nano с пустым заданием cron. Наберем в нем следующее тестовое задание
Код: Выделить всё
PATH=/opt/bin:/opt/sbin:/sbin:/usr/sbin:/bin:/usr/bin
*/1 * * * * /opt/bin/logger "Test of cron every minute"
Это задание пишет в лог (журнал) роутера каждую минуту сообщение о срабатывании cron. Сам файл с заданием появится под именем root или admin (в зависимости от имени суперпользователя) в созданной ранее папке.
Запустим cron
Код: Выделить всё
crond
В логе должны появится строки подобные этим
Код: Выделить всё
Dec 8 11:10:08 crond[4909]: crond (busybox 1.24.1) started, log level 8
Dec 8 11:11:00 crond[4909]: USER admin pid 4914 cmd /opt/bin/logger "Test of cron every minute"
Dec 8 11:11:00 admin: Test of cron every minute
Dec 8 11:12:00 crond[4909]: USER admin pid 4916 cmd /opt/bin/logger "Test of cron every minute"
Dec 8 11:12:00 admin: Test of cron every minute
Если у Вас cron заработал, остановим его
Код: Выделить всё
killall crond
Для автозапуска создадим файл S05crond в папке /opt/etc/init.d следующего содержания
Код: Выделить всё
#!/bin/sh
CRON="/opt/sbin/crond"
export PATH=/opt/bin:/opt/sbin:/sbin:/usr/sbin:/bin:/usr/bin
start() {
$CRON -L /dev/null
}
stop() {
killall crond
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo "Usage: $0 {start|stop}"
;;
esac
Запустим этот скрипт с параметром start или перезагрузим роутер.
Для создания своих заданий Вам потребуется документация по формату crontab. Ее в интернете вагон и маленькая тележка. Например
http://www.nncron.ru/nncronlt/help/RU/w ... format.htm
http://www.k-max.name/linux/planirovshh ... b-anacron/
Счастливого планирования заданий