Agitech Posted February 25 Posted February 25 (edited) Доброго всем. Создаю скрипт /opt/etc/test_cron.sh echo "Last run: $(date)">>/opt/etc/test_cron_info.txt Добавляю его в посредством EDITOR=nano crontab -e. Редактируется файл /opt/var/spool/cron/crontabs/root . Что тока не писал, и сам файл делал исполняемым. И права файлу /opt/var/spool/cron/crontabs/root давал 777. Но задание не запускается. Если же вручную добавить в /opt/etc/crontab что то типа (54 это просто ближайщее время для теста) 54 * * * * root /opt/etc/test_cron.sh то все работает. И потом команда crontab -l выводит инфу про какой то файл в папке tmp которого там нет. Цитата ~ # crontab -l # DO NOT EDIT THIS FILE - edit the master and reinstall. # (/tmp/crontab.XXXX74jLKl installed on Wed Feb 25 16:33:37 2026) # (Cron version V5.0 -- $Id: crontab.c,v 1.12 2004/01/23 18:56:42 vixie Exp $) #0 0 * * * /opt/sbin/xkeen -ug Просвятите в чем тут дело? Edited February 25 by Agitech Quote
jinndi Posted February 25 Posted February 25 22 минуты назад, Agitech сказал: Добавляю его в посредством EDITOR=nano crontab -e. добавь это попробуй 54 * * * * /opt/etc/test_cron.sh 1 Quote
zyxmon Posted February 25 Posted February 25 В Entware две разные версии cron - поиск по форуму помлжет 1 Quote
Agitech Posted February 25 Author Posted February 25 (edited) Да вроде стал писать, но почему то дату не выводит /opt/etc/crontab 49 * * * * root /opt/etc/test_cron.sh /opt/var/spool/cron/crontabs/root 48 * * * * /opt/etc/test_cron.sh test_cron_info.txt Last run: Wed Feb 25 20:45:48 MSK 2026 Last run: Last run: Wed Feb 25 20:49:01 MSK 2026 первая запись запустил вручную, вторая пользовательский крон, третья глобальная. Дату не выводит. Опять где-то накосячил? Цитата В Entware две разные версии cron - поиск по форуму помлжет Ага нашел - спасибо! Edited February 25 by Agitech Quote
Andre Posted February 25 Posted February 25 Попробуйте echo "Last run:" $(date) >> /opt/etc/test_cron_info.txt Ну то есть добавить пробелы по канону, а кавычку перенести. Quote
Agitech Posted February 25 Author Posted February 25 (edited) Вопрос у меня после старта роутера нет процесса crond Цитата ~ # ps | grep cron 923 root 5084 S cron -s 3368 root 5976 R grep cron поэтому и не работали задания аплета. Те что здесь прописаны : /opt/var/spool/cron/crontabs/root Если его стартануть то все работает. Для пакета opkg есть скрипт в init.d, а как стартует crond? Edited February 25 by Agitech Quote
Agitech Posted February 25 Author Posted February 25 (edited) 3 часа назад, Andre сказал: Попробуйте echo "Last run:" $(date) >> /opt/etc/test_cron_info.txt Ну то есть добавить пробелы по канону, а кавычку перенести. Не понятно .. толи у меня что то глючит не пойму просто убил crond запустил по новой, добавил задание терь работает все норм #!/bin/sh DATETIME="$(date +"%Y-%m-%d %T")" PARENT_CMDLINE=$(cat /proc/$PPID/cmdline | tr '\0' ' ') #printf "%s\n" "$(date +"%Y-%m-%d %T")" >> /opt/etc/test_cron_info.txt #printf "PPID:%s; CMDLINE: %s\n" "$PPID" "$PARENT_CMDLINE">>/opt/etc/test_cron_info.txt echo "PPID:$PPID; CMDLINE: $PARENT_CMDLINE">>/opt/etc/test_cron_info.txt echo "Last run: $DATETIME">>/opt/etc/test_cron_info.txt echo "Last run: $(date +"%Y-%m-%d %T")">>/opt/etc/test_cron_info.txt echo "------">>/opt/etc/test_cron_info.txt вывод Цитата PPID:4804; CMDLINE: crond Last run: 2026-02-26 00:29:00 Last run: 2026-02-26 00:29:00 ------ специально убрал command substitution, но все работает и так и так. Хз какая то байда у меня с этим crond. Началось с того, что заметил что задания не отрабатывают. Edited February 25 by Agitech Quote
Agitech Posted February 25 Author Posted February 25 (edited) Да еще что подметил: # аплет busybox crond # исполняемый файл - /opt/sbin/crond # конфиги рута - /opt/var/spool/cron/crontabs/root (так понимаю для каждого юзера своя папка будет) # не понятно как стартует # вернее после установки entware opkg надо допилить как описано в статье по ссылке ниже для корректной работы надо редатритовать crontab-ом EDITOR=nano crontab -e если править как то по другому может не работать. так понимаю по вызову crontab перечитывает задания. # формат записи (без имени пользователя) * * * * * command # пакет opkg # opkg info cron # исполняемый файл /opt/sbin/cron # конфиг общий - /opt/etc/crontab (еще так понимаю есть по интервалам папки в папке /opt/etc/) править можно чем угодно после изменения надо /opt/etc/init.d/S10cron restart # формат записи (имя пользователя) * * * * * root command https://forum.keenetic.ru/topic/918-зажигаем-и-выключаем-led-на-keenetic-по-расписанию-с-cron/ Edited February 26 by Agitech Quote
Agitech Posted February 26 Author Posted February 26 Ок пробую такое: /opt/etc/test_cron.sh #!/bin/sh DATETIME="$(date +"%Y-%m-%d %T")" PARENT_CMDLINE=$(cat /proc/$PPID/cmdline | tr '\0' ' ') printf "Runed: %s; PPID:%s; CMDLINE: %s\n%s\n" "$DATETIME" "$PPID" "$PARENT_CMDLINE" "---">> /opt/etc/test_cron_info.txt Сначала ## /opt/etc/crontab # пакет opkg. Пишем */1 * * * * root /opt/etc/test_cron.sh . Затем /opt/etc/init.d/S10cron restart В /opt/etc/test_cron_info.txt видим: Цитата Runed: 2026-02-26 14:05:01; PPID:21140; CMDLINE: cron -s --- Runed: 2026-02-26 14:06:01; PPID:21164; CMDLINE: cron -s --- Runed: 2026-02-26 14:07:01; PPID:21191; CMDLINE: cron -s --- Runed: 2026-02-26 14:08:01; PPID:21213; CMDLINE: cron -s --- Runed: 2026-02-26 14:09:01; PPID:21370; CMDLINE: cron -s --- Ок удаляем запись из /opt/etc/crontab. Рестарт пакета. Теперь EDITOR=nano crontab -e */1 * * * * /opt/etc/test_cron.sh crontab: installing new crontab В /opt/etc/test_cron_info.txt видим: Runed: 2026-02-26 14:11:00; PPID:20324; CMDLINE: crond --- Runed: 2026-02-26 14:12:00; PPID:20324; CMDLINE: crond --- Runed: ; PPID:21473; CMDLINE: --- Runed: 2026-02-26 14:13:00; PPID:20324; CMDLINE: crond --- Runed: ; PPID:21507; CMDLINE: Т.е. первый второй вызов нормальные, а потом лезут какие-то фантомы необъяснимые для меня. Что это может быть? Переустанавиливать entware и пробовать по новой? Quote
Andre Posted February 26 Posted February 26 Насколько я понял вы отказались от crond и установили cron из репозитория В файле /opt/etc/crontab в конце каждой строки вставьте табуляцию и все пробелы проверьте что это именно пробелы, а не неотображаемые символы Quote
Agitech Posted February 26 Author Posted February 26 (edited) Не отказадся я не отчего я пытаюсь разобраться, как работает и тот и другой. С cron пакетом все понятно. C crond нет. Установил сейчас свежий entware opkg. Только накатил opkg install openssh-sftp-server opkg install nano Там после свежей установки не работает crond. ps | grep cron 964 root 2972 D grep cron EDITOR=nano 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 но процесса crond всеравно нет. Заливаю скрипт что выше, даю ему права на запуск. Затем EDITOR=nano crontab -e */1 * * * * /opt/etc/test_cron.sh потом ctrl+s ctrl+x Не стартуют задания. И процесса нет. Возникает вопрос, xkeen туда (в его планировщик) записал задание обновления геобаз. Но не работает crond у меня. Вот и хочу понять в чем дело. Edited February 26 by Agitech добавление Quote
Agitech Posted February 26 Author Posted February 26 (edited) В этом топике есть раздел где описано создание скрипта автозапуска для crond Но у меня вопрос, почему тогда его по умолчании нет после установки и некоторые програмы пишут в файл планировщика crond, так понимаю не создавая этого скрипта. У меня в него и xkeen и smarthtml записали задания свои. А он не стартует. Как то непонятно. Ну вот как сделал все как в той статье все заработало с crond. Красота!!!! Теперь в тестовом файле Цитата Runed: 2026-02-26 21:42:00; PPID:751; CMDLINE: /opt/sbin/crond -L /dev/null --- Runed: 2026-02-26 21:43:00; PPID:751; CMDLINE: /opt/sbin/crond -L /dev/null --- Runed: 2026-02-26 21:44:00; PPID:751; CMDLINE: /opt/sbin/crond -L /dev/null --- Runed: 2026-02-26 21:45:00; PPID:751; CMDLINE: /opt/sbin/crond -L /dev/null --- Runed: 2026-02-26 21:46:00; PPID:751; CMDLINE: /opt/sbin/crond -L /dev/null --- Runed: 2026-02-26 21:47:00; PPID:751; CMDLINE: /opt/sbin/crond -L /dev/null --- все как и должно быть. Я просто не знал что надо допиливать этот момент, просто обратил внимание, что задания которые записали в файл планировщика crond не стартуют. Да и всем спасибо за помощь! Edited February 26 by Agitech Quote
Agitech Posted February 26 Author Posted February 26 (edited) Да установил новый xkeen с нуля он создал скрипт автозапуска crond. Что-то видно сломалось у меня да и xkeen был древний. Edited February 26 by Agitech Quote
zyxmon Posted February 27 Posted February 27 12 часов назад, Agitech сказал: некоторые програмы пишут в файл планировщика crond, так понимаю не создавая этого скрипта. У меня в него и xkeen и smarthtml записали задания свои. А он не стартует. Entware ничего не знает про эти программы. Они не в репе Entware. Все вопросы к разработчикам keen и smarthtml Quote
Recommended Posts
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.