Jump to content
linkedu

Помогите настроить cron

Recommended Posts

McMCC писал:
linkedu писал:
Планируется ли добавить cron в opkg для keenopt ????

Он там сразу в предустановочном архиве есть, из busybox'а, вам только свой скрипт написать для автозапуска нужно и настроить crontab...

В предустановочном архиве не видел, но может я что-то не понимаю, может кто-то напишет скрипт, чтобы довести дело до конца???

Share this post


Link to post
Share on other sites

Нужна квалифицированная помощь по запуску cron от busybox. Поиск информации привел на несколько сторонних ресурсов. По результатам чтения одного из них было сделано:

Создан каталог

/opt/etc/crontabs

файл

/opt/root # touch /opt/etc/crontabs/root

символическая ссылка

/opt/root # ln -sf /opt/etc/crontabs/root /opt/etc/crontab

На втором позаимствован скрипт запуска из них cron на базе busybox и немного переделан под существующие условия, насколько правильно нужна консультация опытных товарищей

#!/opt/bin/sh

case "$1" in
start)
  echo "Starting cron..."
  /opt/usr/sbin/crond -c /opt/etc/crontabs
;;
stop)
  echo "Stopping cron..."
  killall crond
;;
restart|reload)
  "$0" stop
  "$0" start
;;
*)
  echo "Usage: $0 {start|stop|restart}"
  exit 1
esac

exit $?

Еще интересует как правильно в crontab прописать отключение Wi-Fi ( на примере [Entware] Включение и отключение Wi-Fi по расписанию )

Share this post


Link to post
Share on other sites

Удалось запустить cron:

конфигурационный файл

TH=/opt/bin:/opt/sbin:/sbin:/usr/sbin:/bin:/usr/bin

0-59/2 * * * * root ndmq -p "interface WifiMaster0/AccessPoint0 up" -P message

1-59/2 * * * * root ndmq -p "interface WifiMaster0/AccessPoint0 down" -P message

лог

Dec 17 21:33:00crond[1217]USER root pid 1229 cmd root ndmq -p "interface WifiMaster0/AccessPoint0 down" -P message

Dec 17 21:34:00crond[1217]USER root pid 1246 cmd root ndmq -p "interface WifiMaster0/AccessPoint0 up" -P message

Dec 17 21:35:00crond[1217]USER root pid 1263 cmd root ndmq -p "interface WifiMaster0/AccessPoint0 down" -P message

Dec 17 21:36:00crond[1217]USER root pid 1280 cmd root ndmq -p "interface WifiMaster0/AccessPoint0 up" -P message

Dec 17 21:37:00crond[1217]USER root pid 1296 cmd root ndmq -p "interface WifiMaster0/AccessPoint0 down" -P message

Dec 17 21:38:00crond[1217]USER root pid 1313 cmd root ndmq -p "interface WifiMaster0/AccessPoint0 up" -P message

Dec 17 21:39:00crond[1217]USER root pid 1330 cmd root ndmq -p "interface WifiMaster0/AccessPoint0 down" -P message

Dec 17 21:40:00crond[1217]USER root pid 1347 cmd root ndmq -p "interface WifiMaster0/AccessPoint0 up" -P message

Но почему-то WIFI не отключается и не включается, может быть названия интерфейсов указаны неправильно? Где можно найти названия интерфейсов?

Share this post


Link to post
Share on other sites

Что это?

TH=/opt/bin:/opt/sbin:/sbin:/usr/sbin:/bin:/usr/bin

правильно писать:

PATH=/opt/bin:/opt/sbin:/sbin:/usr/sbin:/bin:/usr/bin

Все равно не работает

Dec 18 16:25:00crond[604]USER root pid 606 cmd root ndmq -p "interface WifiMaster0 down" -P message

Dec 18 16:26:00crond[604]USER root pid 611 cmd root ndmq -p "interface WifiMaster0 up" -P message

Dec 18 16:27:00crond[604]USER root pid 616 cmd root ndmq -p "interface WifiMaster0 down" -P message

Dec 18 16:28:00crond[604]USER root pid 621 cmd root ndmq -p "interface WifiMaster0 up" -P message

Share this post


Link to post
Share on other sites

Что это?

TH=/opt/bin:/opt/sbin:/sbin:/usr/sbin:/bin:/usr/bin

правильно писать:

PATH=/opt/bin:/opt/sbin:/sbin:/usr/sbin:/bin:/usr/bin

Все равно не работает

Dec 18 16:25:00crond[604]USER root pid 606 cmd root ndmq -p "interface WifiMaster0 down" -P message

Dec 18 16:26:00crond[604]USER root pid 611 cmd root ndmq -p "interface WifiMaster0 up" -P message

Dec 18 16:27:00crond[604]USER root pid 616 cmd root ndmq -p "interface WifiMaster0 down" -P message

Dec 18 16:28:00crond[604]USER root pid 621 cmd root ndmq -p "interface WifiMaster0 up" -P message

А сама команда ndmq есть в вашей системе? Вы ее устанавливали?

Share this post


Link to post
Share on other sites

Кстати, когда включаю wifi в журнале сообщение:

Network::Interface::Base: "WifiMaster0/AccessPoint0": interface is up.

Так что все таки правильное название интерфейса так и будет - WifiMaster0/AccessPoint0

Share this post


Link to post
Share on other sites

Что это?

TH=/opt/bin:/opt/sbin:/sbin:/usr/sbin:/bin:/usr/bin

правильно писать:

PATH=/opt/bin:/opt/sbin:/sbin:/usr/sbin:/bin:/usr/bin

Все равно не работает

Dec 18 16:25:00crond[604]USER root pid 606 cmd root ndmq -p "interface WifiMaster0 down" -P message

Dec 18 16:26:00crond[604]USER root pid 611 cmd root ndmq -p "interface WifiMaster0 up" -P message

Dec 18 16:27:00crond[604]USER root pid 616 cmd root ndmq -p "interface WifiMaster0 down" -P message

Dec 18 16:28:00crond[604]USER root pid 621 cmd root ndmq -p "interface WifiMaster0 up" -P message

А сама команда ndmq есть в вашей системе? Вы ее устанавливали?

Устанавливал

Share this post


Link to post
Share on other sites

Да, действительно, работает. Теперь проблема со стартовым скриптом

файл S05crond в папке /opt/etc/init.d

#!/bin/sh

CRON="/opt/usr/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

Что я сделал не так?

Share this post


Link to post
Share on other sites

Да, действительно, работает. Теперь проблема со стартовым скриптом

файл S05crond в папке /opt/etc/init.d

#!/bin/sh

CRON="/opt/usr/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

Что я сделал не так?

Сам себе и отвечу - все сделал так, работает.

Хотел будильник сделать

0-59/2 * * * * /opt/etc/init.d/S05mpc start

1-59/2 * * * * /opt/etc/init.d/S05mpc stop

но что-то не играет радио, хотя в логе

Dec 20 10:08:00crond[15215]USER root pid 15230 cmd /opt/etc/init.d/S05mpc start

Dec 20 10:09:00crond[15215]USER root pid 15257 cmd /opt/etc/init.d/S05mpc stop

а если вводить команды в cmd /opt/etc/init.d/S05mpc start /opt/etc/init.d/S05mpc stop

то все работает. В чем может быть проблема?

Share this post


Link to post
Share on other sites

Как минимум интервал времени очень маленький, там почти минута и более уходит на подготовку и загрузку плейлистов, поэтому стартовыми скриптами я бы пользоваться не рекомендовал. Делать нужно проще, mpc play и mpc stop, причем после play еще можно указать номер позиции в плейлисте, типа mpc play 10...

Share this post


Link to post
Share on other sites

Может я что-то не понимаю, но тогда почему при вводе точно таких же команд в cmd реагирование на них происходит мгновенно???

Смотря какой плейлист, у меня он DLNA ссылки содержит и грузится чуть больше минуты...

Share this post


Link to post
Share on other sites

Добавил скрипты и настройки для cron'а в keenopt.

Старые настройки можно удалить и пользоваться пакетом cron:

# opkg update

# opkg install cron

Добавил директории для выполнения скриптов в

/opt/etc/cron.minutely - ежеминутно

/opt/etc/cron.hourly - ежечасно

/opt/etc/cron.daily - ежедневно

/opt/etc/cron.weekly - еженедельно

/opt/etc/cron.monthly - ежемесячно

Создаем в этих директориях файлы без всяких расширений и устанавливаем права, например 744.

# touch /opt/etc/cron.minutely/simple_test

# chmod 744 /opt/etc/cron.minutely/simple_test

# vi /opt/etc/cron.minutely/simple_test

#!/opt/bin/sh

date >> /opt/var/date.txt

Если все правильно сделано, то в файле /opt/var/date.txt должно печататься время каждую минуту...

Share this post


Link to post
Share on other sites

А можно на mpc play и mpc stop назначить какую-нибудь кнопку роутера?

На кнопку нельзя, но спасибо за вопрос. Добавим обработчик — запуск скрипта по нажатию кнопки, по срокам не знаю, но точно не в этом году.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Пробовал добавить одно задание на запуск sh скрипта с помощью cron с периодичностью 3 часа, но задание почемуто не запускается, хотя сам cron запускается и фаил crontab отредактировал. Может кто-нибудь посоветовать способ как проверить работает ли у меня cron, т.е. каким образом можно протестировать его работу?

Share this post


Link to post
Share on other sites

16 часов назад, beowulf0208 сказал:

Может кто-нибудь посоветовать способ как проверить работает ли у меня cron

Уже ответил в теме Просмотр информации SMART (здоровья) подключенного жёсткого диска по возможным проблемам с cron.

Share this post


Link to post
Share on other sites

Народ, нужна помощь. Никак не могу заставить cron запускать тестовый из другой папки, а не из той, что указана здесь.

Проблема решена с помощью этого поста http://forums.zyxmon.org/viewtopic.php?p=13672#p13672

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...