PDA

Bekijk de volledige versie : Настройка CRON на роутере



Pages : [1] 2

dccharacter
11-11-2006, 19:49
Крон загаживает весь лог. Как отключить логгирование?

Что я пробовал:

1. В crontab добавлял в конец строки >/dev/null
2. Создавал файлы /etc/default/cron и /opt/etc/default/cron с содержимым CRONLOG=NO

К желаемым последствиям это не привело. Подскажите, пожалуйста, как его победить.

dimvia
27-11-2006, 14:05
Дает ошибку.Не находит файл - хотя он есть.

imdex
27-11-2006, 15:19
А crond есть в прошивке Олега, его можно не ставить в принципе.

dimvia
27-11-2006, 16:24
при уставновке любой программы

ice
27-11-2006, 20:57
ipkg update (если память не изменяет)

Popovsky
04-08-2007, 17:47
Поставил Крон сделал как описано http://www.macsat.com/cron.php , Крон стартует нормально, но почемуто скрипт описаный в ссылке не хочет стартовать :( в логах появляется строчка - /opt/sbin/cron[2290]: (root) CMD (run-parts /opt/etc/cron/cron.5min, но ничего не происходит, файл не создается....

Mam(O)n
04-08-2007, 18:26
В ручную run-parts /opt/etc/cron/cron.5min запускается?
Если твой логин не root(а допустим admin), то в кронтабе его на свой логин поменял?

Popovsky
04-08-2007, 18:35
нет не запускался , хотя сам скрипт работает - в ручном режиме...
перенабил run-parts стал запускаться и формировать файл ... но в автоматическом режиме увы....

jaxwell
06-08-2007, 07:27
Скорее всего при перезагрузке автоматически не стартует демон (посмотреть его наличие командами ps или top - там его скорее всего не будет). Потом попробовать запустить его вручную: /opt/etc/init.d/S10cron start. И как последний вариант добавить эту строчку (на запуск демона), например, в post-mount. Тогда должно все работать нормально.

Popovsky
06-08-2007, 09:14
Проблемму решил :) всем спасибо...

Duke
06-08-2007, 09:44
Хм.. а зачем такие сложности, в прошивке уже есть cron бузибоксовый

slavikt
07-08-2007, 23:50
Искал по форуму, не нашёл.

Вижу инструкцию по установке крона. И одновременно в прошивке вижу уже имеющиеся crond и crontab.
И есть у меня вопрос один.
А чем установленный на флешку крон лучше того, что уже в прошивке сидит?

slavikt
08-08-2007, 22:23
Похоже, в прошлый раз с неправильной кодировкой отправилось.

Искал по форуму, не нашёл.

Вижу инструкцию по установке крона. И одновременно в прошивке вижу уже имеющиеся crond и crontab.
И есть у меня вопрос один.
А чем установленный на флешку крон лучше того, что уже в прошивке сидит?

mkk
04-11-2007, 23:02
Установил "Cron" согласно инструкции.
Процесс запускается, но выдает в лог ошибку:

(*system*) BAD FILE MODE (/opt/etc/crontab)
Содержимое файла crontab скопировал из инструкции.
Подскажите, в чем может быть дело.

al37919
04-11-2007, 23:21
/opt/etc/crontab должен иметь права доступа 600:
chmod 600 /opt/etc/crontab

mkk
05-11-2007, 20:18
Спасибо. Теперь Cron стартует, но скрипт все равно не выполняется.
содержимое crontab:


SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/opt/sbin:/opt/bin
MAILTO=""
HOME=/
# ---------- ---------- Default is Empty ---------- ---------- #
*/5 * * * * admin run-parts /opt/etc/cron.5mins
.

Вручную команда "run-parts /opt/etc/cron.5mins" выполняется успешно.

MobyDick
11-11-2007, 21:28
Помогите разобраться, cron пропускает выполнение заданий.
в crontab следующие:

0 2 * * * admin /opt/etc/cron.start/mlnet.sh >> /tmp/cron.log
58 7 * * * admin /opt/etc/cron.stop/mlnet.sh >> /tmp/cron.log
при этом он в упор не выполняет первое задание и ни чего не пишет в лог, но выполняет второе. Почему так происходит?

Reyter
12-11-2007, 11:54
Помогите разобраться, cron пропускает выполнение заданий.
в crontab следующие:

0 2 * * * admin /opt/etc/cron.start/mlnet.sh >> /tmp/cron.log
58 7 * * * admin /opt/etc/cron.stop/mlnet.sh >> /tmp/cron.log
при этом он в упор не выполняет первое задание и ни чего не пишет в лог, но выполняет второе. Почему так происходит?
а если вручную запустить

/opt/etc/cron.start/mlnet.sh >> /tmp/cron.log
то нормально выполняется?

lexass
21-11-2007, 00:46
грабли какие-то!!!

вручную:
/opt/etc/cron.5mins/имя_скрипта
скрипт работает

автоматом НИФИГА:(
в логе каждые 5 мин, типа такой строки:
Nov 21 02:35:01 /opt/sbin/cron[172]: (admin) CMD (/opt/bin/run-parts /opt/etc/cron.5mins)

куда копать?
кронтаб чмод 600, скрипты +х

Mam(O)n
21-11-2007, 06:06
А вручную команда
/opt/bin/run-parts /opt/etc/cron.5mins
срабатывает?

lexass
21-11-2007, 13:53
А вручную команда
/opt/bin/run-parts /opt/etc/cron.5mins
срабатывает?

нет
-sh: /opt/bin/run-parts: not found

-rwxr-xr-x 1 admin root 457 Jan 1 1970 run-parts

Mam(O)n
21-11-2007, 14:03
Скрипт run-parts случаем не в венде составлялся? Тогда установи ipkg install flip и сделай flip -u /opt/bin/run-parts

http://wl500g.info/showpost.php?p=56660&postcount=348

lexass
21-11-2007, 14:09
спсиб...

ура...

electrocat
09-12-2007, 13:32
Добрый день,
Краткий вопрос: Как пользоваться crond, который уже встроен в прошивку ?
Немного развёрнутый:
поискав поиском по форуму, обнаружил что все описывают инструкции с установкой нового cron, в стиле ipkg install cron .... и тп, а про cron, прошитый в прошивку ничего поиском не нашел, кроме упоминаний, что в последней версии он уже есть в прошивке ( плохо искал ? - Ткните носом )
При попытке запуска:

root]$ crond
crond: /var/spool/cron/crontabs: No such file or directory
Ладно, создаём каталог, но он не сохраняется при перезагрузке :(
Во всех объяснениях по устанавливаемому crond указаны инструкции по "mkdir /opt/etc/cron.5mins & mkdir /opt/etc/cron.hourly mkdir & /opt/etc/cron.daily & mkdir /opt/etc/cron.weekly & mkdir /opt/etc/cron.monthly"
А здесь как и что ?

Не напишет ли кто, мини - FAQ по crond из прошивки ? или ткните носом в готовый.
или, все устанавливают заново, потому, что тот, из прошивки, чем - то плох ?

Спасибо :)

Oleg
09-12-2007, 13:51
Я писал когда-то. Надо искать. Вот что нашёл сходу:

http://wl500g.info/showpost.php?p=19656&postcount=2

electrocat
09-12-2007, 14:37
Я писал когда-то. Надо искать. Вот что нашёл сходу:[/url]
:) Видимо надо знать что искать :)
Спасибо !

алгоритм, найденный здесь (http://wl500g.info/showthread.php?t=1058) полностью помог


mkdir -p /var/spool/cron/crontabs
crontab -e
#Edit crontab file. See tutorials on crontab and vi (text editor)
#Ex. Press "a" for append-mode. Enter cron-command ex "00 1 * * * reboot"
#to reboot everyday at 1 am. Press "Esc", ":wq" and "Enter" to save and quit.
mkdir -p /usr/local/sbin
echo "/var/spool/cron/crontabs/admin" >> /usr/local/.files
if [ ! -f /usr/local/sbin/post-boot ] ; then
echo "#!/bin/sh" > /usr/local/sbin/post-boot
fi
echo "/usr/sbin/crond" >> /usr/local/sbin/post-boot
chmod +x /usr/local/sbin/post-boot
flashfs save
flashfs commit
#If not already enabled:
flashfs enable
reboot

Я правильно понимаю, что кронтаба /var/spool/cron/crontabs/admin полностью достаточно для запуска всех задач ? вызывает ли встроенный crond глобальный /etc/crontab (или какой другой)?

Oleg
09-12-2007, 14:49
Я правильно понимаю, что кронтаба /var/spool/cron/crontabs/admin полностью достаточно для запуска всех задач ? вызывает ли встроенный crond глобальный /etc/crontab (или какой другой)?
Да. Не помню. :) Чиатайте man к busybox там должно быть описано.

electrocat
09-12-2007, 15:08
Да вроде погрыз как ман http://linux.die.net/man/1/busybox,
так и родную документацию http://www.busybox.net/downloads/BusyBox.html

там молчат как партизаны, я так понимаю нужно чуть ли не в исходники лезть :) проще проверить опытным путём, да и /var/spool/cron/crontabs/admin работает, так что отложу своё любопытство

Спасибо за помощь!

Mam(O)n
09-12-2007, 22:57
В busybox стоит crond реализации от Matthew Dillon. Здесь (http://man.he.net/man8/crond) можно почитать ман. Также я помню где-то читал, что там какой то хитросделанный обмен кронтабами с демоном и правильнее будет управлять таблицей через команду /usr/bin/crontab. Например так как я здесь (http://wl500g.info/showpost.php?p=67780&postcount=5) писал.

piezomotor
13-01-2008, 07:28
У меня cron не пишет в тест лог.

Деал по инструкции-

http://wl500g.info/showthread.php?t=8998&highlight=rrdtool.sh

Дает ошибку-

[admin@WL-001D60DEC437 root]$ cron stop
cron: can't lock /opt/var/run/cron.pid, otherpid may be 196: Resource temporarily unavailable
[admin@WL-001D60DEC437 root]$ cron start
cron: can't lock /opt/var/run/cron.pid, otherpid may be 196: Resource temporarily unavailable
[admin@WL-001D60DEC437 root]$


Похоже cron не запускается....

Где грабли?

Serge_K
13-01-2008, 07:35
У меня cron не пишет в тест лог.

Деал по инструкции-

http://wl500g.info/showthread.php?t=8998&highlight=rrdtool.sh

Дает ошибку-

[admin@WL-001D60DEC437 root]$ cron stop
cron: can't lock /opt/var/run/cron.pid, otherpid may be 196: Resource temporarily unavailable
[admin@WL-001D60DEC437 root]$ cron start
cron: can't lock /opt/var/run/cron.pid, otherpid may be 196: Resource temporarily unavailable
[admin@WL-001D60DEC437 root]$


Похоже cron не запускается....

Где грабли?

Судя по всему СRON уже запущен и Вы пытаетесь запустить еще раз.
Может /opt/var/run/cron.pid ручками удалить и запустиь по новой?
И запускайте его через
/opt/etc/init.d/S10cron

piezomotor
14-01-2008, 02:31
Судя по всему СRON уже запущен и Вы пытаетесь запустить еще раз.
Может /opt/var/run/cron.pid ручками удалить и запустиь по новой?
И запускайте его через
/opt/etc/init.d/S10cron

Спасибо Serge_K! Заработало. Уже пишет в тест лог-

Sun Jan 13 16:42:01 EST 2008
Sun Jan 13 16:45:03 EST 2008
Sun Jan 13 16:48:01 EST 2008
Sun Jan 13 16:50:55 EST 2008
Sun Jan 13 16:54:02 EST 2008...

Создал новую тему- http://wl500g.info/showthread.php?p=77479#post77479

demoniada
24-02-2008, 07:06
Интересный эффект обнаружил вчера. Если в скрипте написать:


ps >>/opt/var/test.log

то ps нормально отработвет, вернет список процессов, вне зависимости от того, запущен этот скрипт с консоли или из-под cron.
Однако, если написать хоть какой нибудь ключик ps, например:


ps -C enhanced-ctorrent -o %a >>/opt/var/test.log

, то при запуске скрипта с консоли все нормально, а из-под cron - список процессов пуст! Причем пробовал писать разные ключи, и -A, и axf - все побоку. Без ключей дает список процесссов, с ключами - нет.

Где грабли? :confused:

Прошивка 1.9.2.7.

Спасибо.

piezomotor
24-02-2008, 07:58
Интересный эффект обнаружил вчера. Если в скрипте написать:


ps >>/opt/var/test.log

то ps нормально отработвет, вернет список процессов, вне зависимости от того, запущен этот скрипт с консоли или из-под cron.
Однако, если написать хоть какой нибудь ключик ps, например:


ps -C enhanced-ctorrent -o %a >>/opt/var/test.log

, то при запуске скрипта с консоли все нормально, а из-под cron - список процессов пуст! Причем пробовал писать разные ключи, и -A, и axf - все побоку. Без ключей дает список процесссов, с ключами - нет.

Где грабли? :confused:

Прошивка 1.9.2.7.

Спасибо.

Я заметил что у меня через cron openvpn так не запускается-openvpn /opt/etc/openvpn/openvpn.conf

а так запускается-
/opt/sbin/openvpn /opt/etc/openvpn/openvpn.conf

Как говорят почувствуйте разницу....

TVadim
24-02-2008, 08:09
Я заметил что у меня через cron openvpn так не запускается-openvpn /opt/etc/openvpn/openvpn.conf

а так запускается-
/opt/sbin/openvpn /opt/etc/openvpn/openvpn.conf

Как говорят почувствуйте разницу....

http://wl500g.info/showpost.php?p=81766&postcount=32

TVadim
24-02-2008, 08:14
Интересный эффект обнаружил вчера. Если в скрипте написать:


ps >>/opt/var/test.log

то ps нормально отработвет, вернет список процессов, вне зависимости от того, запущен этот скрипт с консоли или из-под cron.
Однако, если написать хоть какой нибудь ключик ps, например:


ps -C enhanced-ctorrent -o %a >>/opt/var/test.log

, то при запуске скрипта с консоли все нормально, а из-под cron - список процессов пуст! Причем пробовал писать разные ключи, и -A, и axf - все побоку. Без ключей дает список процесссов, с ключами - нет.

Где грабли? :confused:

Прошивка 1.9.2.7.

Спасибо.

Разные ps вызываются.
http://wl500g.info/showpost.php?p=81766&postcount=32

al37919
24-02-2008, 08:16
есть /bin/ps --- он не принимает ключей вообще;
может стоять /opt/bin/ps --- он ключи принимает.
А далее все зависит от того в каком порядке пути прописаны в переменной PATH.
Так что либо в явном виде указываете чему равна PATH, либо еще лучше задавайте полные пути к исполняемым файлам. Тогда результаты будут предсказуемыми.
P.S. ну вот, опять параллельный постинг :)

demoniada
24-02-2008, 08:21
да, ларчик просто открывался :)


/opt/bin/ps -C enhanced-ctorrent -o %a


Спасибо.

Break Action
15-06-2008, 22:54
Уважаемые Гуру,
Если вас не затруднит подскажите как возможно вылечить ниже описаную ситуацию с кроном.
Я установил крон по инструкции (http://www.macsat.com/cron.php), создал директории (cron.5mins, cron.hourly, cron.daily, cron.weekly, cron.monthly), далее создал файл run-parts (и установил на него права). Крон поставил на запуск в post-mount и он висит в памяти.
Перегрузил роутер, но файлы так и не запускаются в кроне из выше указанных директорий.
Подскажите плз как вылечить или хотя бы куда копать.

ADDED: Со всем разобрался, огромное спасибо, тем кто прошел данный путь впереди меня и оставил заметки со своими знаниями. Топик можно удалить.
PS: Ответы найдены в темах: http://www.wl500g.info/showthread.php?t=8998 и http://www.wl500g.info/showthread.php?t=11412

kodmis
13-09-2008, 23:31
Можно хранить файлы расписаний crond в любом каталоге.
Например,


crontab -c /etc/crontabs -e
crond -c /etc/crontabs

Правда для "crontab -e" все равно нужен каталог /var/spool/cron/ Видимо crontab сначала в нем создает файл расписаний, а только потом переносит /etc/crontabs (но прям как маленький, сам создать каталог для временных файлов не может :) Впринципе, можно обойтись без crontab, например:


echo "*/5 * * * * /usr/local/sbin/cron/cron.5mins" >> /etc/crontabs/admin

Только если меняете расписание без crontab при запущенном crond, необходимо в каталоге настроек создать файл-семафор "cron.update", в который записать имя измененного файла с раписанием (чтоб crond обновил расписание в памяти):


echo "admin" >> /etc/crontabs/cron.update

Маны:
http://sova.unica.by/doc/man.php?query=crond&apropos=0&section=0&type+=2
http://alcor.concordia.ca/manpages/sys8/crond.8.html

cesar
04-10-2008, 20:38
при установке cron выдает сообщение

Package cron (4.1-7) installed in /opt/ is up to date.
Configuring cron
Remember that the system crontab file is "/opt/etc/crontab".
usage: /opt/etc/init.d/S10cron (start|stop)
postinst script returned status 1
ERROR: cron.postinst returned 1
Nothing to be done
Successfully terminated.

подскажите как решить проблему

cesar
06-10-2008, 10:07
проблема решилась удалением cron

ipkg remove cron
и повторной установкой cron

ipkg install cron
хотя интересно было бы знать в чем все таки была проблема

inouterer
07-12-2008, 21:27
Не пойму, зачем мне эти заморочки!?
Живу в диком краю, интернет безлимитный с 23-00 до 8-00. Чоб не просадить денег на Tansmission решил с помощью Cronа подменять файл конфигурации по расписанию.

SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/opt/sbin:/opt/bin
MAILTO=""
HOME=/
# ---------- ---------- Default is Empty ---------- ---------- #
59 07 * * * admin sh /tmp/harddisk/torrent/stoptransmission
01 23 * * * admin sh /tmp/harddisk/torrent/starttransmission
Помучился, заработало и даже пару суток нормально по плану функционировало. Отработка события отражалась в сислоге. А теперь тишина. Задания не выполняются и ничего не говорит. В логах:

Dec 8 00:49:32 /opt/sbin/cron[175]: (CRON) STARTUP (V5.0)
Если обновить crontab, то:

Dec 8 01:09:01 /opt/sbin/cron[175]: (*system*) RELOAD (/opt/etc/crontab)
Пробовал переустановить, результата нет. Искать по форуму пытался. В чём может быть запятуха?

inouterer
08-12-2008, 17:06
Помогите, у меня голова треснет! Я убрал в кронтабе строчку:

# ---------- ---------- Default is Empty ---------- ---------- # и мои задания стали выполняться. Однако добавленное третье, аналогичное задание просто игнорируется без записи в лог! Может версия крона для вл500 както хитро урезана? Например crontab -e руается, что действие запрещено...

AndreyPopov
08-12-2008, 18:01
Помогите, у меня голова треснет! Я убрал в кронтабе строчку:

# ---------- ---------- Default is Empty ---------- ---------- # и мои задания стали выполняться. Однако добавленное третье, аналогичное задание просто игнорируется без записи в лог! Может версия крона для вл500 както хитро урезана? Например crontab -e руается, что действие запрещено...


все что стоит после символа # до символа перевода строки - это комментарий и эта строка не обрабатывается.

проверьте не переполнен ли ваш лог?

Alexander B.
08-12-2008, 18:39
И еще - а как именно Вы редактируете кронтаб?

inouterer
08-12-2008, 18:47
Спасибо! Но как часто бывает, задавая вопрос сам угадываешь ответ))) Где-то ища решение, читал про знак табуляции в crontab-е. Так и вышло. Строка события должна заканчиваться пропуском. Если таковой не поставить, то следующая строка не обрабатывается:

SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/opt/sbin:/opt/bin
MAILTO=""
HOME=/
59 07 * * * admin sh /tmp/harddisk/torrent/stoptransmission{tab}
01 23 * * * admin sh /tmp/harddisk/torrent/starttransmission{tab}
*/10 * * * * admin echo "HeeeellllooooOOOOO!!!!!"{tab}
В таком виде в 7-59 и 23-01 отрабатывются операции с transmission и каждые 10 мин в лог пишется привет (не забыть закоментировать).
В общем я это вижу таким образом. Могу ошибаться или недопонимать, но всё работает.
Добавлено:
В общем это мистика) Теперь крон прекрасно обходится без всяких табов. Но уверен, что он меня сволочь обязательно подведёт! Как это уже случилось сегодня утром, когда нужно было остановить transmission (иначе 3 р./Мб - накладно), ладно я проконтролировал. Лог зафиксировал запуск скрипта, но действия не произошло... Пускал его вручную.
Да, crontab редактирую в MC. Если через smb, то изменяются права на отличные от 600 и cron выдаёт ошибку.

Escoode
22-01-2009, 23:30
Хочу избавится от спама crond`а в логи
нашёл вроде бы что установка MAILTO="" отключает спам в лог.
В предыдущем посте вроде увидел эти параметры.

Но при установке, пишет вот что:

Jan 23 01:22:01 crond[125]: failed user root parsing SHELL=/bin/sh
Jan 23 01:22:01 crond[125]: failed user root parsing PATH=/sbin:/bin:/usr/sbin:/usr/bin:/opt/sbin:/opt/bin
Jan 23 01:22:01 crond[125]: failed user root parsing MAILTO=""
Jan 23 01:22:01 crond[125]: failed user root parsing HOME=/
Jan 23 01:22:01 crond[125]: USER root pid 355 cmd /tmp/local/sbin/checkppp1


Вопрос - у меня кривой crond\crontab или неустановлен не установлено устройство \dev\hands ?

Escoode
22-01-2009, 23:54
Нашёл ключ
-l 0 но он не отключает.
cron продолжает спамить в лог

Jan 23 01:47:01 crond[124]: USER root pid 194 cmd /tmp/local/sbin/checkppp1
Jan 23 01:48:01 crond[124]: USER root pid 194 cmd /tmp/local/sbin/checkppp1
Jan 23 01:49:01 crond[124]: USER root pid 194 cmd /tmp/local/sbin/checkppp1
Jan 23 01:50:01 crond[124]: USER root pid 194 cmd /tmp/local/sbin/checkppp1


Что же делать?

theMIROn
24-01-2009, 11:26
Нашёл ключ
-l 0 но он не отключает.
cron продолжает спамить в лог
-L /dev/null

pitbowen
30-01-2009, 14:35
Доброго времени суток.
Настраиваю wl-500gpv2, делаю все по инструкции, но при вводе команды ipkg install cron консоль выдает следующее:


Installing cron (4.1-7) to /opt/...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/oleg/cross/stable/cron_4 -7_mipsel.ipk
Configuring bzip2
ln: //opt/bin/bzip2: Operation not permitted
postinst script returned status 1
ERROR: bzip2.postinst returned 1
Configuring cron
Remember that the system crontab file is "/opt/etc/crontab".
/opt/etc/init.d/S10cron: /opt/etc/init.d/S10cron: 8: /opt/sbin/cron: not found
postinst script returned status 127
ERROR: cron.postinst returned 127
Configuring ncurses
ln: //opt/bin/clear: Operation not permitted
postinst script returned status 1
ERROR: ncurses.postinst returned 1
Successfully terminated.


Из-за этого, насколько я понимаю, не работает lighttpd и как следствие ados.

Вопрос: где и что я сделал не так?

Markiz
30-01-2009, 14:45
вы от рута работаете? по логу ошибок у вас прав нет.

pitbowen
30-01-2009, 14:50
вы от рута работаете? по логу ошибок у вас прав нет.

[admin@WL-блаблабла root]$ - полагаю, что да.

pitbowen
30-01-2009, 15:24
Поставил директории chmod +x - безрезультатно.

Markiz
30-01-2009, 15:47
Перед тем как ставить директории chmod +x неплохо бы почитать что этот самый chmod +x делает и нужно ли его ставить директории.

pitbowen
30-01-2009, 15:51
Перед тем как ставить директории chmod +x неплохо бы почитать что этот самый chmod +x делает и нужно ли его ставить директории.

Я почитал, причем именно перед тем. Буду крайне признателен, если мне объяснят, в чем ошибка (уж не в том ли, что +х ставится для файлов?). Сразу скажу, что при установке прав 0755 и 0777 ничего не меняется.

azhur
30-01-2009, 18:12
ln: //opt/bin/bzip2: Operation not permitted
А это оно не на создание линков ругается?
Файловая система какая на диске?
Для линков нужна ext3.

theMIROn
30-01-2009, 19:27
cron уже встроен в прошивку, точнее в busybox

pitbowen
31-01-2009, 09:04
А это оно не на создание линков ругается?
Файловая система какая на диске?
Для линков нужна ext3.

Большое спасибо, видимо, проблема именно в этом. Сейчас роутер не у меня, но как только появится - переформатирую.



cron уже встроен в прошивку, точнее в busybox

Вполне может быть. Я ставлю ADOS и, соответственно, пакеты из альтернативного репозитария для него. Там черным по белому - поставить cron. В любом случе, при установке остальных пакетов эта проблема также возникает.

AndreyPopov
31-01-2009, 14:31
cron уже встроен в прошивку, точнее в busybox

нету cron в busybox!!!!!!!

есть прошивки, к примеру DD-WRT, куда он встроен, но к busybox это отношения не имеет. кстати на DD-WRT busybox ОЧЕНЬ сильно урезан. там нет даже fdisk в составе!

al37919
31-01-2009, 14:49
нету cron в busybox!!!!!!!
совершенно справедливо. Однако, в нем есть crond

theMIROn
31-01-2009, 17:41
ага, опечатка. crond есть и отлично работает

begemot
06-03-2009, 12:43
установил из репозитария крон, делаю:

[root@serv etc]$ /opt/sbin/cron -x test
debug flags enabled: test
[185] cron started
log_it: (*system* 185) BAD FILE MODE (/opt/etc/cron.d/updatedb-daily)
log_it: (*system* 185) BAD FILE MODE (/opt/etc/cron.d/test)

какой у них должен быть FILE MODE?

ThinkPad
06-03-2009, 13:32
chmod 600 /opt/etc/cron.d/updatedb-daily
chmod 600 /opt/etc/cron.d/test

а что там за файлы??? Там же только crontab должен быть....

Файлы должны лежать тут
/opt/etc/cron.5mins
/opt/etc/cron.hourly
/opt/etc/cron.daily
/opt/etc/cron.weekly
/opt/etc/cron.monthly

в зависимости от того когда запускать их или внесены прямо в crontab

begemot
16-03-2009, 11:07
хз почему так получилось, но папку cron.d создал cron при установке, а при установке mlocate туда добавился файл

/opt/etc/cron.d/updatedb-daily

содержанием

# start updatedb daily at early morning
0 2 * * * root /opt/bin/updatedb -f proc

jan_h
16-03-2009, 12:36
установил из репозитария крон, делаю:

[root@serv etc]$ /opt/sbin/cron -x test
debug flags enabled: test
[185] cron started
log_it: (*system* 185) BAD FILE MODE (/opt/etc/cron.d/updatedb-daily)
log_it: (*system* 185) BAD FILE MODE (/opt/etc/cron.d/test)

какой у них должен быть FILE MODE?
Может не починить, а правильно настроить;)? Можете посмотреть здесь (http://wl500g.info/showpost.php?p=52524&postcount=1)

falselight
24-03-2009, 23:16
Столкнулся с проблемой автозагрузки скрипта.
fdupdate.php
Прописал в cron, крон не запускает его и не обновляет, я подумал, что он не работает, открыл ps, пишет, что крон есть
/opt/sbin/cron
создал тестовый файл test.sh, чтобы крон создал там дату каждые 5 минут, прошло более 20 минут, даже файл не был создан.
После этого я добавил fdupdate в post-mount, но это безуспешно, скрипт не запускается почему-то.
Только запускается вручную и после 2 раза, при первом разе
выбивает много
такого характера
PHP Notice: Undefined offset: 99 in /opt/etc/fdupdate/fdupdate.php on line 72
Запускаю второй раз, этих ошибок нет.
Крон устанавливал с мнуала DURAK EDITION
если вы спросите, все ли файлы исполняем, отвечу - да. лично проверил перед тем как писать на форум.
Подскажите что-то, чтобы дойти до истины.
p.s. скрипт который запускает все файлы на S роботает., а вот почему-то крон...


[admin@RLLPoint root]$ crontab -l
You (admin) are not allowed to use this program (crontab)
See crontab(1) for more information
может из-за этого?


$ cron -x proc
debug flags enabled: proc
[315] cron started
log_it: (*system* 315) BAD FILE MODE (/opt/etc/crontab)
log_it: (*system* 315) BAD FILE MODE (/opt/etc/cron.d/vnstat)

falselight
25-03-2009, 03:42
переустановил всё полностью,
сейчас только сделал:
смонтировал диски
установил твики
установил ipkg
поставил скрипт загрузки S скриптов
теперь пытаюсь ставить крон в ps крон видно
при вводе такой команды видим следующие


$ cron -x proc
debug flags enabled: proc
cron: can't lock /opt/var/run/cron.pid, otherpid may be 155: Resource temporarily unavailable
log_it: (CRON 161) DEATH (can't lock /opt/var/run/cron.pid, otherpid may be 155: Resource temporarily unavailable)

Помогите, кто знает как с этим бороться,
впринципе, файлы исполняемые выставил,соблюдаю язык ввода


мой конфиг

crontab обычный файл не исполняемый



SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/opt/bin:/opt/sbin:/opt/usr/bin:/opt/usr/sbin
MAILTO=""
HOME=/
# ---------- ---------- Default is Empty ---------- ---------- #
# Syntax for lines is : minute hour day month dayofweek command #
*/5 * * * * admin run-parts /opt/etc/cron.5mins
01 * * * * admin run-parts /opt/etc/cron.hourly
02 4 * * * admin run-parts /opt/etc/cron.daily
22 4 * * 0 admin run-parts /opt/etc/cron.weekly
42 4 1 * * admin run-parts /opt/etc/cron.monthly

S10cron файл исполняемый

#!/bin/sh
#
# Startup script for cron
#
# Stop myself if running
PIDFILE=/opt/var/run/cron.pid
[ -f ${PIDFILE} ] && kill `cat ${PIDFILE}`
/opt/sbin/cron

rc.unslung исполняемый


#!/bin/sh
# Start/stop all init scripts in /opt/etc/init.d
# starting them in numerical order and
# stopping them in reverse numerical order
#
if [ $# -ne 1 ]; then
printf "Usage: $0 {start|stop}\n" >&2
exit 1
fi

daemons=`echo $(/usr/bin/dirname $0)/S??*`
[ $1 = "stop" ] && daemons=`echo $daemons | /usr/bin/tr " " "\n" | /usr/bin/sor$

for i in $daemons; do

# Ignore dangling symlinks (if any).
[ ! -f "$i" ] && continue

# Write to syslog
logger -t rc.unslung "$1 service $i"

case "$i" in
*.sh)
# Source shell script for speed.
(
trap - INT QUIT TSTP
set $1
. $i
)
;;
*)
# No sh extension, so fork subprocess.
$i $1
;;
esac
done

ABATAPA
25-03-2009, 06:24
cron -x proc
debug flags enabled: proc
cron: can't lock /opt/var/run/cron.pid, otherpid may be 155: Resource temporarily unavailable
log_it: (CRON 161) DEATH (can't lock /opt/var/run/cron.pid, otherpid may be 155: Resource temporarily unavailable)[/CODE]


Cron не может получить блокировку файла, т. к., похоже, выполняется другой cron.
Не пытайтесь запустить cron (даже с параметром -x), если он уже запущен.



log_it: (*system* 315) BAD FILE MODE (/opt/etc/crontab)
log_it: (*system* 315) BAD FILE MODE (/opt/etc/cron.d/vnstat)


Право на запись в эти файлы должен иметь только root (у нас admin).
Сделайте:
chown -R admin:root /opt/etc/crontab /opt/etc/cron.d/
chmod -R a-rwx,u+rwX /opt/etc/crontab /opt/etc/cron.d/

falselight
25-03-2009, 13:34
спасибо, сейчас разобрался

jack239
05-04-2009, 17:34
Здравствуйте.
Помогите пожалуйста.
Настраивал всё по инструкции "НАСТРОЙКА ASUS WL-500gP [DURAK EDITIONS]". (http://wl500g.info/showthread.php?t=18096)
3ий пункт SCRIPTS когда нужно внести изменения в /usr/local/sbin/post-boot.
Ввожу команду echo "chmod 777 /tmp" >> /usr/local/sbin/post-boot.В ответ получаю No such file or directory.
Я установил Cron по этой же инструкции.Хотел внести изменения в post-boot.
Вообще мне нужно включать компьютер в определённое время.Я прочитал что это можно сделать с помощью команды ether-wake.Протестировал,всё работает.Теперь мне нужно чтобы cron запускал мой скрипт во время.
Помогите плиз....

jack239
11-04-2009, 06:13
Здравствуйте.
Помогите плиз.
Всё делал как в инструкции НАСТРОЙКА ASUS WL-500gP [DURAK EDITIONS] (http://wl500g.info/showthread.php?t=18096&highlight=cron).
Положил в /opt/etc/cron.5mins скрипт test.sh
Вот такого содержания
#!/bin/sh

date >> /tmp/crontest.txt

сделал его исполняемым
chmod 755 /opt/etc/cron.5mins/test.sh

Но ничего не происходит.
Где посмотреть?В чём ошибка?Помогите пожалуйста

Vollsky
11-04-2009, 06:25
Здравствуйте.
Помогите плиз.
Всё делал как в инструкции НАСТРОЙКА ASUS WL-500gP [DURAK EDITIONS] (http://wl500g.info/showthread.php?t=18096&highlight=cron).
Положил в /opt/etc/cron.5mins скрипт test.sh
Вот такого содержания
#!/bin/sh

date >> /tmp/crontest.txt

сделал его исполняемым
chmod 755 /opt/etc/cron.5mins/test.sh

Но ничего не происходит.
Где посмотреть?В чём ошибка?Помогите пожалуйста
Cron в процессах есть?
Файл test.sh не содержит "0D;0A" (вк;пс)?
P.S
Файл crontab должен иметь chmod 600

jack239
11-04-2009, 07:29
Набрал ps.
Процесса cron там нет.
Набрал ls -l /opt/etc/crontab
В ответ получил

-rw------- 1 admin root 483 Apr 3 17:51



Что делать?

jack239
11-04-2009, 07:33
Не знаю что такое "0D;0A" (вк;пс).
Там только это

#!/bin/sh

date >> /tmp/crontest.txt

ABATAPA
11-04-2009, 10:00
Не знаю что такое "0D;0A" (вк;пс).
Там только это

#!/bin/sh

date >> /tmp/crontest.txt

"0D;0A (вк;пс)" - это так обозвали используемые в DOS/Windows пару кодов "Возврат каретки" и "Перевод строки", которые в указанных используются для в конце строки для перехода на новую стоку. В Unix (и в Linux) традиционно используется только один символ - 0x0A.
Мораль всего этого такова - не редактировать файлы в Windows в редакторах, которые не умеют сохранять в Unix-стиле. Лучше редактируйте на самом устройстве, например, "встроенным" в MC редактором.

А ошибки нужно прежде всего смотреть в логах (в /opt/var/log/messages, если Вы все делали по инструкции).

aha
11-04-2009, 10:07
Набрал ps.
Процесса cron там нет.
Что делать?

Добавь запуск cron'a в /usr/local/sbin/post-mount:
echo "/opt/etc/init.d/S10cron" >> /usr/local/sbin/post-mount
flashfs save && flashfs commit && flashfs enable

Содержимое /opt/etc/init.d/S10cron (файл должен быть исполняемым):


#!/bin/sh
#
# Startup script for cron
#
# Stop myself if running

echo "Stopping cron:"
PIDFILE=/opt/var/run/cron.pid
[ -f ${PIDFILE} ] && kill `cat ${PIDFILE}`

echo "Starting cron:"
/opt/sbin/cron

jack239
11-04-2009, 18:02
Файл /opt/var/log/messages пустой.
Я пользуюсь редактором vi,я установил его на wl500g.Пользуюсь через telnet.
Записал в /usr/local/sbin/post-mount.
Сохранил.Перезапустил,но ничего в процессах нет.

Vollsky
12-04-2009, 20:06
Файл /opt/var/log/messages пустой.
Я пользуюсь редактором vi,я установил его на wl500g.Пользуюсь через telnet.
Записал в /usr/local/sbin/post-mount.
Сохранил.Перезапустил,но ничего в процессах нет.
Естественно пустой, раз cron не запускается.


Записал в /usr/local/sbin/post-mount.
Сохранил.Перезапустил,но ничего в процессах нет.
Что записал? Что сохранил?
Нужно всего самую малость - прочитать все рекомендации в теме, сделать как сказано и все заработает.
Вот еще возможный скрипт запуска cron. \opt\etc\init.d\S10cron:
#!/bin/sh
#
# Startup script for cron
#
# Stop myself if running
PIDFILE=/opt/var/run/cron.pid
NAME=cron
time=`/bin/date '+%b %e %H:%M:%S'`

start() {
/opt/sbin/cron
echo "............. $time ...... $NAME==> START" >> /opt/var/log/syslog-ng.log
}
stop() {
[ -f ${PIDFILE} ] && kill `cat ${PIDFILE}`
killall $NAME 2> /dev/null
echo "............. $time ...... $NAME==> STOP" >> /opt/var/log/syslog-ng.log
}
restart() {
stop
start
}

case $1 in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo "usage: $0 (start|stop|restart)"
exit 1
esac

После того, как файл будет готов можно запустить его из командной строки: \opt\etc\init.d\S10cron start
После посмотреть в процессах. И т.д. , что уже говорилось выше.

jack239
15-04-2009, 18:40
Попробовал.
Всё равно после выключения роутера и включения в процессах нет cron'а.
Я уже пробовал и стирать всё что делал,удалил cron.Начал заново....... результат тот же.

Vollsky
16-04-2009, 08:21
Попробовал.
Всё равно после выключения роутера и включения в процессах нет cron'а.
Я уже пробовал и стирать всё что делал,удалил cron.Начал заново....... результат тот же.
Все ясно! Он не запускается!:)

ABATAPA
16-04-2009, 11:26
Файл /opt/var/log/messages пустой.



Ну тогда /var/log/messages

jack239
16-04-2009, 17:44
Ну тогда /var/log/messages
Он тоже пустой:(:(:(:(

shttd
17-04-2009, 08:37
У меня такая же проблема. Разница только в том что cron запускается....
P.S. Заработало с правами 666 на crontab. 0_0

GUID
27-04-2009, 13:24
Добрый день,
можно ли избавиться от сообщений в syslog, записываемых cron-ом при каждом событии?
(поиск по параметрам запуска cron-а ничего не дал...)
---
Apr 27 14:35:01 /opt/sbin/cron[2878]: (Admin) CMD (run-parts /opt/etc/cron.5mins)
---
(настроивалось по DURAK-EDITION)

kir-g
27-04-2009, 13:39
Добрый день,
можно ли избавиться от сообщений в syslog, записываемых cron-ом при каждом событии?
(поиск по параметрам запуска cron-а ничего не дал...)
---
Apr 27 14:35:01 /opt/sbin/cron[2878]: (Admin) CMD (run-parts /opt/etc/cron.5mins)
---
(настроивалось по DURAK-EDITION)
посмотри здесь
http://wl500g.info/showthread.php?t=15834&highlight=syslog-ng

GUID
27-04-2009, 13:44
syslog-ng
было подозрение, что придется менять "стандартный syslog", но руки не дошли до просмотра указанной Вами темы.
СПАСИБО!

BlackKovu
27-04-2009, 15:10
Можно еще сказать крону писать в свой собственный лог файл

GUID
27-04-2009, 16:39
Можно еще сказать крону
что-то я не нашел где это можно сделать, ткните носом pls.

al37919
27-04-2009, 18:43
еще можно перезапустить syslogd с loglevel 6 вместо 7 по умолчанию.

GUID
27-04-2009, 19:13
Всем спасибо!
(буду разбираться с syslog-ng)

BlackKovu
27-04-2009, 20:46
что-то я не нашел где это можно сделать, ткните носом pls.
/usr/sbin/crond -L /opt/var/log/crond.log

kodmis
29-04-2009, 14:48
/usr/sbin/crond -L /opt/var/log/crond.log



---
(настроивалось по DURAK-EDITION)
BlackKovu вы дали строку для встроенного cron.
А в DURAK-EDITION'ах предлагают ставить из репозитория. В репе другой cron.

lsd_wiz
02-06-2009, 21:25
Вот кусок скрипта для отоброжения статистики посещения:

netstat -en | grep "10.1.1.1" | awk '{
if(($4) == "10.1.1.1:411"){print("<b>DC++</b>",$5)}
if(($4) == "10.1.1.1:80"){print("<b>HTTP</b>",$5)}
if(($4) == "10.1.1.1:1723"){print("<b>VPN</b>",$5)}
if(($4) == "10.1.1.1:21"){print("<b>FTP</b>",$5)}
}' | sort $1 >> $LOG

трабла вот в чём, скрипт лежит /opt/etc/cron.5mins, и по прошествию каждых 5 минут запускается cron -ом, и после обработки ничего не возвращает, но если запустить обработку sh /opt/etc/cron.5mins/wstat.sh
всё работает, ничего не понимаю...

vectorm
03-06-2009, 09:26
Вот кусок скрипта для отоброжения статистики посещения:

netstat -en | grep "10.1.1.1" | awk '{
if(($4) == "10.1.1.1:411"){print("<b>DC++</b>",$5)}
if(($4) == "10.1.1.1:80"){print("<b>HTTP</b>",$5)}
if(($4) == "10.1.1.1:1723"){print("<b>VPN</b>",$5)}
if(($4) == "10.1.1.1:21"){print("<b>FTP</b>",$5)}
}' | sort $1 >> $LOG

трабла вот в чём, скрипт лежит /opt/etc/cron.5mins, и по прошествию каждых 5 минут запускается cron -ом, и после обработки ничего не возвращает, но если запустить обработку sh /opt/etc/cron.5mins/wstat.sh
всё работает, ничего не понимаю...
А если полные пути прописать?

lsd_wiz
03-06-2009, 16:24
пути к чему, к netstat? да пофигу это. яж ручками запускаю работает, а крон экзекает не работает, вот те кронтаб


cat /opt/etc/crontab
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/opt/bin:/opt/sbin:/opt/usr/bin:/opt/usr/sbin
MAILTO=""
HOME=/
*/5 * * * * admin run-parts /opt/etc/cron.5mins
*/30 * * * * admin run-parts /opt/etc/cron.30mins
01 * * * * admin run-parts /opt/etc/cron.hourly
02 4 * * * admin run-parts /opt/etc/cron.daily
22 4 * * 0 admin run-parts /opt/etc/cron.weekly
42 4 1 * * admin run-parts /opt/etc/cron.monthly

al37919
03-06-2009, 20:26
еще раз. Разница между запуском скрипта через крон и в интеркактивном шеле --- в окружении. Сделайте вывод переменных окружения в обоих случаях и проанализируйте чем они отличаются.

lsd_wiz
03-06-2009, 21:40
Если взлянуть на скрипт, то можно заметить что awk просматривает 4 столбец 4 netstat, тобиш активные соеденеия. вот, скрипт обрабатывает строки и заменяет их на строковые значения.
вот пример с домашней машины:


netstat -ne | grep 192
tcp 0 0 192.168.3.32:80 192.168.3.70:1164 SYN_RECV 0 0
tcp 0 0 192.168.3.32:80 192.168.3.70:1526 SYN_RECV 0 0
tcp 0 0 192.168.3.32:411 192.168.2.1:42515 ESTABLISHED 0 104917
tcp 0 0 192.168.3.32:80 192.168.1.173:1558 TIME_WAIT 0 0
tcp 0 0 192.168.3.32:411 192.168.1.176:1043 ESTABLISHED 0 111443
tcp 0 0 192.168.3.32:411 192.168.3.110:3154 ESTABLISHED 0 66133
tcp 0 0 192.168.3.32:80 192.168.3.70:1163 TIME_WAIT 0 0
tcp 0 1 192.168.3.32:80 192.168.3.70:1167 FIN_WAIT1 0 0
tcp 0 0 192.168.3.32:80 192.168.3.70:1525 ESTABLISHED 0 115938
tcp 0 0 192.168.3.32:80 192.168.1.173:1579 TIME_WAIT 0 0

тобиш если сделать
netstat -ne | grep 192 | awk '{if(($4) == "192.168.3.32:80"){print("что нибудь или столбец",$5)}}' >> /opt/test
команда выполняется нормально
кидаем в файл /opt/etc/cron.5min/test.sh
ждём 5 мин и на выходе получаем нечиго!
берём руками запускаем, sh /opt/etc/cron.5min/test.sh - работает
если в скрипт упростить без оператора if
netstat -ne | grep 192 | awk '{print($4,$5)}}' >> /opt/test
работает в обоих случаях.
на домашней машине всё работает прекрасно.
есть подозрение что awk в прошивке принимается как ссылка на /bin/busybox. Попробую пересобрать awk на домашней машине может прокатит.

Ant-125
18-06-2009, 23:58
подниму тему
а можно ли заставить cron из репозитария писать в собственный лог или вообще его не вести? или можно использовать встроенный и как?

Murfen
06-07-2009, 15:59
Команда crontab также имеет ключ -с для указания каталога.
Но удобнее конечно либо хранить в стандартном месте, либо создать ссылку, например:


mkdir -p /opt/var/spool/cron/crontabs
mkdir -p /var/spool/cron
ln -s /opt/var/spool/cron/crontabs /var/spool/cron
echo "/var/spool/cron/crontabs" >> /tmp/local/.files
flashfs save && flashfs commit && flashfs enable

Опытным путем выяснилось, что встроенный crond (busybox) поддерживает только пользовательские crontab'ы.
Это означает, что вы задаете для него каталог, он оттуда читает только те файлы, которые совпадают с именами пользователей.

Например, если пакет vnstat ставит файл /opt/etc/cron.d/vnstat, то нельзя запускать busybox crond на каталог /opt/etc/cron.d/ по двум причинам:
1. файл vnstat будет проигнорирован, так как не совпадает с именем пользователя.
2. Даже если переименовать vnstat в admin, то работать все равно не будет, так как vnstat содержит лишнее слово - имя пользователя admin или в оригинале root.

*/5 * * * * admin if [ -x /op....

Удобный скрипт run-parts (http://wl500g.info/showpost.php?p=128993&postcount=5) удается поднять и на busybox crond, что здорово!
Спасибо за инструкции ;-)

iDiver
04-08-2009, 19:56
У меня такая же проблема. Разница только в том что cron запускается....
P.S. Заработало с правами 666 на crontab. 0_0
А у меня так не заработало... А в логе пишет

Aug 4 21:43:20 /opt/sbin/cron[242]: (CRON) STARTUP (V5.0)
Aug 4 21:43:20 /opt/sbin/cron[242]: (*system*) BAD FILE MODE (/opt/etc/crontab)
Причем, cron дергается по расписанию, но ничего не выполняется. Что это за ошибка? В чем проблема?

sy.msk
05-08-2009, 09:06
Инструкции читал, но простым "копировать-вставить" не работает.
Помогите, пожалуйста, найти что я делаю не так.
Не выполняются автоматом скрипты из папки /opt/etc/cron.5mins
Вручную выполняются, а автоматом - нет.

Что делал:
1) В настройках веб-морды отключил FTP и SAMBA.
2) Вставил флешку на 32 метра в верхний разъём USB
3) Отмонтировал её с помощью umount
4) С помощью fdisk создал один раздел на всю флеху
5) С помощью mke2fs форматнул раздел.

Далее смонтировал в /tmp/harddisk
Флешка видится,читается, пишется и всё такое.

далее команды:


mkdir /tmp/harddisk/opt
mount -obind /tmp/harddisk/opt /opt
mkdir -p /opt/tmp/ipkg
ipkg.sh update
ipkg.sh install ipkg-opt
ipkg update

ipkg install cron

flashfs save && flashfs commit && flashfs enable && reboot


после ребута отредактировал файлы:

содержимое файлов:
/usr/local/sbin/post-boot :

#!/bin/sh
chmod 777 /tmp
insmod scsi_mod
insmod sd_mod
insmod usb-storage


/usr/local/sbin/post-mount :

#!/bin/sh
/bin/mount -o sync,noatime,rw /dev/discs/disc0/part1 /tmp/harddisk
/bin/mount -o sync,noatime,rw /dev/discs/disc1/part1 /tmp/harddisk
/bin/mount -o bind,sync,noatime,rw /tmp/harddisk/opt /opt
/opt/etc/init.d/S10cron start


/usr/local/sbin/pre-shutdown :

#!/bin/sh
lsof -t /dev/discs/disc0/part1 | xargs kill -9
mount -t ext3 -o remount,ro /dev/discs/disc0/part1


/opt/bin/run-parts :

#!/bin/sh
#
# runparts.sh by macsat@macsat.com
# intended for use with cron
#
# based on rc.unslung by unslung guys :-)
#
if [ -z "$1" ]
then
echo "Usage : $0 "
fi

RUNDIR=$1"/*"

for i in $RUNDIR ;do

# Ignore dangling symlinks (if any).
[ ! -f "$i" ] && continue

case "$i" in
*.sh)
# Source shell script for speed.
(
trap - INT QUIT TSTP
set start
. $i
)
;;
*)
# No sh extension, so fork subprocess.
$i start
;;
esac
done


/opt/etc/init.d/S10cron :

#!/bin/sh
#
# Startup script for cron

PIDFILE=/opt/var/run/cron.pid

case $1 in
start)
/opt/sbin/cron
;;
stop)
[ -f ${PIDFILE} ] && kill `cat ${PIDFILE}` ;;
*)
echo "usage: $0 (start|stop)"
exit 1
esac


/opt/etc/crontab :

SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/opt/bin:/opt/sbin:/opt/usr/bin:/opt/usr/sbin
MAILTO=""
HOME=/
# ---------- ---------- Default is Empty ---------- ---------- #
# Syntax for lines is : minute hour day month dayofweek command #
*/5 * * * * admin run-parts /opt/etc/cron.5mins
01 * * * * admin run-parts /opt/etc/cron.hourly
02 4 * * * admin run-parts /opt/etc/cron.daily
22 4 * * 0 admin run-parts /opt/etc/cron.weekly
42 4 1 * * admin run-parts /opt/etc/cron.monthly


В списке процессов cron виден, но не работает.
Что ему ещё надо-то? Почему скрипты автоматом не запускаются?

OlegaVB
05-08-2009, 13:07
Права на crontab какие? Должно быть 600.

sy.msk
05-08-2009, 15:44
Права на crontab какие? Должно быть 600.

Я подозреваю, что дело возможно в правах. У crontab права 0755.
группа root
владелец admin

Может на каких-то ещё файлах права или владельца сменить надо?

OlegaVB
05-08-2009, 15:50
Ну все что исполняется должно иметь как раз права 0755

sy.msk
05-08-2009, 16:07
Заработало!

Поменял права на 0600. Потом заметил, что почему-то не сохранилось в /usr/local/sbin/post-mount :
/opt/etc/init.d/S10cron start

Там было без start.

Странно - это должно было влиять только на то запустится ли cron вообще. До перезагрузки запускал его вручную - не работало. Тут поменял права, запустил, опять же, вручную - заработало!

brainm
19-08-2009, 08:08
Согласно тарифному плану провайдера требуется в определённое время осуществить пересоединение с VPN сервером.
Есть прошивка от Олега и cron, как это можно реализовать?

alting
19-08-2009, 09:05
Согласно тарифному плану провайдера требуется в определённое время осуществить пересоединение с VPN сервером.
Есть прошивка от Олега и cron, как это можно реализовать?

crontab -e

00 23 * * * /usr/bin/killall -1 pppd

Esc

:wq

Enter

Передернет соединение в 23 часа 00 минут каждый день.

MrGalaxy
06-09-2009, 10:07
Уважаемые специалисты!

CRON у меня установлен, в папке /opt/etc были когда-то созданы каталоги cron.1min, cron.5mins и т.д.

Недавно полез в одну из этих кроновских папок, создал там файл, записал скрипт, сохранил.
Но вот что обнаружил:

http://img190.imageshack.us/img190/9917/asus27.png

Откуда на диске в каталоге /opt/bin/etc взялись копии тех же самых папок, что и в /opt/etc ?
Это - глюк от предыдущих моих экспериментов или так и должно быть?
Или что-то лишнее и можно удалить?
(Извините за рифму :D)

Вообще, я не нашёл отдельной ветки, посвящённой тому, как кроном пользоваться.
Просветите, пожалуйста.

Lupo_Alberto
07-09-2009, 10:55
Возможно, вы когда-либо по ошибке скопировали этот каталог. Там ему делать нечего.

MrGalaxy
07-09-2009, 19:53
Возможно, вы когда-либо по ошибке скопировали этот каталог. Там ему делать нечего.
Вы хотите сказать, что весь каталог /opt/bin/etc я могу спокойно удалить?

MrGalaxy
08-09-2009, 06:16
Вы хотите сказать, что весь каталог /opt/bin/etc я могу спокойно удалить?

Попробовал сам, не дожидаясь ответа. Однако, получилось и роутер даже работает.:)

vectorm
08-09-2009, 08:47
Закрываю тему, раз решено.

sergey_privacy
29-09-2009, 05:29
Помогите с проблемой, второй день бьюсь:
Флэшка к роутеру не подключена, для работы программ /opt моунтится с помощью строчки


[pupkin@192 root]$ cat /usr/local/sbin/post-boot
#!/bin/sh
mount /tmp/opt /opt
/tmp/opt/etc/init.d/S10cron
/tmp/1.sh

Скрипт 1.sh отрабатывается без проблем и вставлен для проверки. Сам файл запуска крона существует, с правами все нормально, но не запускается:


[pupkin@192 root]$ ls -l /opt/etc/init.d/S10cron
-rwxr-xr-x 1 pupkin root 153 Jan 24 2008 /opt/etc/init.d/S10cron
[pupkin@192 root]$ ls -l /tmp/opt/etc/init.d/S10cron
-rwxr-xr-x 1 pupkin root 153 Jan 24 2008 /tmp/opt/etc/init.d/S10cron

При попытке его запуска "вручную" вылетает с ошибкой:


[pupkin@192 root]$ /tmp/opt/etc/init.d/S10cron
/tmp/opt/etc/init.d/S10cron: line 8: /opt/sbin/cron: not found

При этом файл существует и права даже в 777 установил на него, не помогает:


[pupkin@192 root]$ ls -l /opt/sbin/cron
-rwxrwxrwx 1 pupkin root 72168 Jan 24 2008 /opt/sbin/cron
[pupkin@192 root]$ /opt/sbin/cron
-sh: /opt/sbin/cron: not found
[pupkin@192 root]$ /tmp/opt/sbin/cron
-sh: /tmp/opt/sbin/cron: not found

Все каталоги и настройки сделаны в соответствии с инструкцией, файл crontab тоже правильно написан:

[pupkin@192 root]$ cat /opt/etc/crontab
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/opt/sbin:/opt/bin
MAILTO=""
HOME=/
# ---------- ---------- Default is Empty ---------- ---------- #
# Syntax for lines is : minute hour day month dayofweek command #
*/1 * * * * pupkin /opt/etc/cron.5mins/2.sh
*/5 * * * * pupkin run-parts /opt/etc/cron.5mins
01 * * * * pupkin run-parts /opt/etc/cron.hourly
02 4 * * * pupkin run-parts /opt/etc/cron.daily
22 4 * * 0 pupkin run-parts /opt/etc/cron.weekly
42 4 1 * * pupkin run-parts /opt/etc/cron.monthly
Что за беда с этой заразой?

sergey_privacy
01-10-2009, 15:30
up up up up

as3k
01-10-2009, 21:31
chmod +x /tmp/opt/etc/init.d/S10cron

sergey_privacy
06-10-2009, 09:40
chmod +x /tmp/opt/etc/init.d/S10cron
Чуть выше я писал:

[pupkin@192 root]$ ls -l /tmp/opt/etc/init.d/S10cron
-rwxr-xr-x 1 pupkin root 153 Jan 24 2008 /tmp/opt/etc/init.d/S10cron

al37919
06-10-2009, 09:53
библиотек ему не хватает. Проверьте, что в наличии эти:

root@wl500g,~> ldd /opt/sbin/cron
libgcc_s.so.1 => /opt/lib/libgcc_s.so.1 (0x2aabf000)
libc.so.0 => /opt/lib/libc.so.0 (0x2aade000)
ld-uClibc.so.0 => /opt/lib/ld-uClibc.so.0 (0x2aaa8000)


Да, еще, монтировать надо так:

mount -obind /tmp/opt /opt

al37919
06-10-2009, 10:01
Кстати, а нужен ли cron в flashfs, если в прошивку встроен crond: http://wl500g.info/showpost.php?p=72483&postcount=6

BVI
09-10-2009, 16:46
Здравствуйте!
Такая проблема:
1. Поставил cron по: "НАСТРОЙКА ASUS WL-500gP [DURAK EDITIONS]"
2. Установил "ADOS & MySql & Curl— Замена Download Master"
3. ADOS & MySql & Curl, вроде бы работает так как файлы с инструкциями добовляются в /opt/etc/cron.1min/, а вот исполнятся не хотят.
Кронтаб отредактировал на интервал 1 минуты
4. В последние время при выполнении команды ps putty выдаёт:
41 pts/2 00:00:08 sh
363 pts/2 00:00:13 top
509 pts/2 00:00:00 ps

Только при вызове ps x выдаёт нормальный список запущенных процессов:

[admin@DIR-320 root]$ ps x
PID TTY STAT TIME COMMAND
1 ? S 0:02 /sbin/init
2 ? S 0:00 [keventd]
3 ? RN 7:40 [ksoftirqd_CPU0]
4 ? S 0:05 [kswapd]
5 ? S 0:00 [bdflush]
6 ? S 0:00 [kupdated]
7 ? S 0:03 [mtdblockd]
55 ? Ss 0:02 telnetd
57 ? S 0:01 httpd vlan1
61 ? Ss 0:00 syslogd -m 0 -O /tmp/syslog.log -S -l 7 -b 2
62 ? Ss 0:00 nas /tmp/nas.lan.conf /tmp/nas.lan.pid lan
64 ? Ss 0:00 klogd
67 ? S 0:00 [khubd]
75 ? Ss 0:00 lpd
77 ? Ss 0:00 p9100d -f /dev/usb/lp0 0
80 ? Ss 0:00 waveservermain
82 ? Ss 0:00 rcamdmain
88 ? S 0:18 [usb-storage-0]
89 ? S 0:00 [scsi_eh_0]
99 ? Ss 0:03 pppd file /tmp/ppp/options.wan0
103 ? Ss 0:00 infosvr br0
104 ? Ss 0:01 watchdog
114 ? S 0:00 dropbear
140 ? S 0:00 [kjournald]
141 ? S 0:00 [kjournald]
164 ? S 0:00 /bin/sh /opt/bin/mysqld_safe --datadir=/opt/var/lib/m
197 ? S 0:00 /opt/libexec/mysqld --basedir=/opt --datadir=/opt/var
200 ? S 0:00 /opt/libexec/mysqld --basedir=/opt --datadir=/opt/var
201 ? S 0:00 /opt/libexec/mysqld --basedir=/opt --datadir=/opt/var
210 ? S 0:12 /opt/sbin/lighttpd -f /opt/etc/lighttpd/lighttpd.conf
213 ? Ss 0:01 /opt/bin/php-fcgi
215 ? Ss 0:00 /opt/sbin/smbd -D
217 ? Ss 0:01 /opt/sbin/nmbd -D
232 ? Ss 0:00 SCREEN -dm -S rtorrent
238 ? S 10:20 /opt/bin/php-fcgi
239 ? S 8:30 /opt/bin/php-fcgi
241 pts/2 Ss 0:08 -sh
363 pts/2 T 0:13 top
397 ? Ss 0:00 /opt/sbin/cron
479 ? S 0:06 /opt/sbin/smbd -D
511 pts/2 R+ 0:00 ps x


Cron есть в этом списке.

В логах \opt\var\cron\crontabs пусто


Уже раз пять cron переустанавливал - не помогло.
Часов 5 точно только на cron убил, всё бестолку :mad:
Что не так ?
Может есть какой-то аналог крона?
Кто нибудь помогите пожалуйста

OlegaVB
09-10-2009, 18:20
Так добавьте в задание что-нибудь, а логи cron в /tmp/syslog.log

SkyDance
10-10-2009, 20:52
Хм
телепат на связи.
Видимо, файл post-mount не исполняемый.
chmod +x /usr/local/sbin/post-mount

kondrat
21-10-2009, 18:18
А что делать если Cron в процессах есть.
Vnstat исправно пишет статистику.
А text.sh не исполняется, ADOC не качает.
это -ps
164 KONDRAT 404 S /opt/sbin/cron

это syslog.log
Oct 21 19:55:01 /opt/sbin/cron[335]: (KONDRAT) CMD (if [ -x /opt/bin/vnstat ] && [ `ls /opt/var/lib/vnstat/
| wc -l` -ge 1 ]; then /opt/bin/vnstat -u; fi)

kondrat
29-10-2009, 16:18
А что делать если Cron в процессах есть.
Vnstat исправно пишет статистику.
А text.sh не исполняется, ADOC не качает.
это -ps
164 KONDRAT 404 S /opt/sbin/cron

это syslog.log
Oct 21 19:55:01 /opt/sbin/cron[335]: (KONDRAT) CMD (if [ -x /opt/bin/vnstat ] && [ `ls /opt/var/lib/vnstat/
| wc -l` -ge 1 ]; then /opt/bin/vnstat -u; fi)

может кто ссылкой поделится куда копать???
умные человеки есть???

sk.sk
03-11-2009, 11:06
Второй день бьюся с кронон перелапатиль кучу ресурсов....
сделал по инструкции эффект 0 :

крон установлен
начинка crontab >>



SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/opt/bin:/opt/sbin:/opt/usr/bin:/opt/usr/sbin
MAILTO=""
HOME=/
# ---------- ---------- Default is Empty ---------- ---------- #
*/1 * * * * admin run-parts /opt/etc/cron.1min
*/5 * * * * admin run-parts /opt/etc/cron.5mins

начинка run-parts


#!/bin/sh
#
# runparts.sh by macsat@macsat.com
# intended for use with cron
#
# based on rc.unslung by unslung guys :-)
#
if [ -z "$1" ]
then
echo "Usage : $0 "
fi

RUNDIR=$1"/*"

for i in $RUNDIR ;do

# Ignore dangling symlinks (if any).
[ ! -f "$i" ] && continue

case "$i" in
*.sh)
# Source shell script for speed.
(
trap - INT QUIT TSTP
set start
. $i
)
;;
*)
# No sh extension, so fork subprocess.
$i start
;;
esac
done

Сделанно chmod +x run-parts

Не могу найти логи к cron
кроме записи в ./tmp/syslog.log

Jan 1 03:00:21 /opt/sbin/cron[184]: (CRON) STARTUP (V5.0)
Nov 3 12:26:30 ntp client: Synchronizing time with time.nist.gov ...

Это всё что в логах нашёл

Проблема в том что он стартует крон (из post-mount)

А исполнять скрипты по времени отказываеться (((

Помогите с напровлением куда рыть ???

права на crontab даже давал где кто то советовал chmod 600 или 660 ...

Заранее благодарен

vectorm
03-11-2009, 11:47
И в какой же инструкции написано, что перед файлами слеша не надо писать???
И путь /opt/bin/run-parts переврали ...
Сделайте без отсебятины, все заработает.

sk.sk
03-11-2009, 13:12
И в какой же инструкции написано, что перед файлами слеша не надо писать???
И путь /opt/bin/run-parts переврали ...
Сделайте без отсебятины, все заработает.

НЕ совсем понимаю на что ВЫ намикаете )))

настраивал аналогично http://www.macsat.com/cron.php
исправлял только root на admin

И где же те файлы перед которыми нет слеша?
и путь /opt/bin/ в кронтабе PATH' ем идёт ....

в кронТАБЕ делал даже так:
*/1 * * * * admin /opt/etc/cron.1min/test.sh (на тесте права +x)

Эффек 0 может я не могу разгледеть то о чём Вы мне скзали выше ?

Lupo_Alberto
03-11-2009, 14:00
Покажите вывод команд


echo $PATH



ls -l $(which run-parts)



ps aux | grep cron



ls -l /opt/etc/cron*

В каком редакторе создавались скрипты, которые должен запускать cron? Покажите какой-либо из них. В ручную они запускаются?

sk.sk
03-11-2009, 14:17
echo $PATH

/opt/sbin:/opt/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin






ls -l $(which run-parts)

total 14
drwxr-xr-x 1 express root 368 Mar 2 2009 bin
drwxr-xr-x 1 express root 0 Jan 1 03:00 dev
lrwxrwxrwx 1 express root 7 Mar 2 2009 etc -> tmp/etc
drwxr-xr-x 1 express root 0 Mar 2 2009 home
drwxr-xr-x 1 express root 148 Mar 2 2009 lib
drwxr-xr-x 1 express root 0 Feb 20 2009 lib64
-rwxr-xr-x 1 express root 2032 Mar 2 2009 linuxrc
drwxr-xr-x 1 express root 0 Mar 2 2009 mnt
drwxr-xr-x 16 express root 4096 Jan 1 1970 opt
dr-xr-xr-x 49 express root 0 Jan 1 2000 proc
drwxr-xr-x 1 express root 522 Mar 2 2009 sbin
drwxr-xr-x 1 express root 0 Jan 1 2000 tmp
drwxr-xr-x 1 express root 71 Mar 2 2009 usr
lrwxrwxrwx 1 express root 7 Mar 2 2009 var -> tmp/var
drwxr-xr-x 1 express root 2111 Mar 2 2009 www


ps aux | grep cron
express 185 0.0 1.3 976 412 ? Ss 03:00 0:00 /opt/sbin/cron
express 387 0.0 1.1 2704 332 pts/0 S+ 03:15 0:00 grep cron




ls -l /opt/etc/cron*
-rw------- 1 express root 195 Nov 3 2009 /opt/etc/crontab

/opt/etc/cron.1min:
total 4
-rwxrwxr-x 1 express root 61 Nov 3 2009 test.sh

/opt/etc/cron.5mins:
total 4
-rwxr-xr-x 1 express root 61 Nov 3 2009 test.sh

/opt/etc/cron.d:
total 4
-rw------- 1 express root 120 Nov 3 2009 vnstat

/opt/etc/cron.daily:
total 0

/opt/etc/cron.hourly:
total 0

/opt/etc/cron.monthly:
total 0

/opt/etc/cron.weekly:
total 0

Lupo_Alberto
03-11-2009, 14:44
Почему у вас в crontab'е указано запускать скрипты от пользователя admin?
У вас есть такой пользователь?
Покажите, где у вас находится run-parts


which run-parts

или


type run-parts

sk.sk
03-11-2009, 15:13
type run-parts >>

run-parts is /opt/bin/run-parts

а admin написан потомучто на этом форуме и ещё на др. сказано root исправить на admin ....

хотя возможно в моём случае и не root и не admin ? (т.к. я пробовал и root и admin прописывать)

sauron093
03-11-2009, 15:19
хотя возможно в моём случае и не root и не admin ? (т.к. я пробовал и root и admin прописывать)

вообще то надо заменить на "как вы в роутер логинитесь"

Lupo_Alberto
03-11-2009, 15:21
У меня run-parts почему-то находится в /opt/sbin :)
Я так понимаю, вы пользователя admin' в express переименовали? Тогда будьте последовательны и замените его в crontab-файле.

sk.sk
03-11-2009, 15:21
УРРРРРААА Всем СПАСИБО в ОСОБЕННОСТИ ::: Lupo_Alberto



Почему у вас в crontab'е указано запускать скрипты от пользователя admin?


ВСё дело выходит было в пользователе которого у меня есть привычка менять....

Я то расчитывал что пользователь root и admin это не изменные пользователи в системе BusyBox ....

БЛАГОДАРЮ ВСЕХ желающих помочь в ЛИЦЕ: Lupo_Alberto и vectorm

xaqbyca
27-11-2009, 17:09
Я сделал всё как написано здесь (http://www.macsat.com/cron.php)
Крон, похоже, работает, я проверил тестом с той страницы:
#!/bin/sh
date >> /tmp/crontest.txt
помещал его в hourly, daily, 5min - всё работает.
Теперь я хочу сделать бекап сайта. Я написал такой скрипт:

#!/bin/sh
wget --mirror --directory-prefix=/opt/home/p2p --output-file=/mnt/log.txt ftp://login:password@site_address

Если я запускаю скрипт вручную, то всё работает правильно: делается бекап, создаётся файл вывода и тп.
Если я кладу файл скрипта в /opt/etc/cron.* (в любую из crontab) ничего не происходит, кроме записи в /opt/val/log/cron.log:
21:01:01 12-11-2009 (notice|user|/opt/etc/cron.hourly/os.sh) /opt/etc/cron.hourly/os.sh: running
и всё. Никакого файла вывода, ни синхронизированных файлов.
Что я делаю не так?

У меня WL500-gP 1.9.2.7-d-r740

Power
27-11-2009, 17:14
Что я делаю не так?


Полный путь до wget-а пробовали указывать?

xaqbyca
27-11-2009, 17:52
Ого, помогло написать /opt/bin/wget
Спасибо

zloy_
31-12-2009, 00:11
У меня была подобная проблема, я её решил следующим образом:

мне пришлось пофиксить файл: /opt/etc/crontab

было


SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/opt/bin:/opt/sbin:/opt/usr/bin:/opt/usr/sbin
MAILTO=""
HOME=/
# ---------- ---------- Default is Empty ---------- ---------- #
# Syntax for lines is : minute hour day month dayofweek command #
*/5 * * * * root run-parts /opt/etc/cron.5mins
01 * * * * root run-parts /opt/etc/cron.hourly
02 4 * * * root run-parts /opt/etc/cron.daily
22 4 * * 0 root run-parts /opt/etc/cron.weekly
42 4 1 * * root run-parts /opt/etc/cron.monthly


стало



SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/opt/bin:/opt/sbin:/opt/usr/bin:/opt/usr/sbin
MAILTO=""
HOME=/
# ---------- ---------- Default is Empty ---------- ---------- #
# Syntax for lines is : minute hour day month dayofweek command #
0-59/5 * * * * admin run-parts /opt/etc/cron.5mins
01 * * * * admin run-parts /opt/etc/cron.hourly
02 4 * * * admin run-parts /opt/etc/cron.daily
22 4 * * 0 admin run-parts /opt/etc/cron.weekly
42 4 1 * * admin run-parts /opt/etc/cron.monthly



P.S> То что я изменил, выделил жирным.
P.P.S> Изначально делал по доке > http://www.macsat.com/cron.php
[С Уважением,
Дмитрий.]

YSL
01-03-2010, 14:04
Кто подскажет проблема с cron не стартует скрипт в папке cron.5mins через 5 мин, и не стартует из папки init.d, и еще не стартует post-firewall в чем проблема подскажите ?

MFMan
01-03-2010, 14:56
ООооОооо Где еее же Вашии ии лооООооогиииии? Гадать надо?

YSL
01-03-2010, 15:58
Jan 1 02:00:01 syslogd started: BusyBox v1.15.3
Jan 1 02:00:01 kernel: klogd started: BusyBox v1.15.3 (2010-02-21 14:15:44 MSK)
Jan 1 02:00:01 kernel: CPU revision is: 00029029
Jan 1 02:00:01 kernel: Primary instruction cache 16kB, physically tagged, 4-way, linesize 16 bytes.
Jan 1 02:00:01 kernel: Primary data cache 16kB, 2-way, linesize 16 bytes.
Jan 1 02:00:01 kernel: Linux version 2.4.37.9 (root@localhost) (gcc version 3.4.6) #2 2010-02-21 14:31:38 MSK
Jan 1 02:00:01 kernel: Setting the PFC to its default value
Jan 1 02:00:01 kernel: Determined physical RAM map:
Jan 1 02:00:01 kernel: memory: 02000000 @ 00000000 (usable)
Jan 1 02:00:01 kernel: On node 0 totalpages: 8192
Jan 1 02:00:01 kernel: zone(0): 8192 pages.
Jan 1 02:00:01 kernel: zone(1): 0 pages.
Jan 1 02:00:01 kernel: Linux NET4.0 for Linux 2.4
Jan 1 02:00:01 kernel: Based upon Swansea University Computer Society NET3.039
Jan 1 02:00:01 kernel: Initializing RT netlink socket
Jan 1 02:00:01 kernel: Starting kswapd
Jan 1 02:00:01 kernel: Journalled Block Device driver loaded
Jan 1 02:00:01 kernel: devfs: v1.12c (20020818) Richard Gooch (rgooch@atnf.csiro.au)
Jan 1 02:00:01 kernel: devfs: boot_options: 0x1
Jan 1 02:00:01 kernel: NTFS driver v1.1.22 [Flags: R/O]
Jan 1 02:00:01 kernel: squashfs: version 3.0 (2006/03/15) Phillip Lougher
Jan 1 02:00:01 kernel: pty: 256 Unix98 ptys configured
Jan 1 02:00:01 kernel: Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ SERIAL_PCI enabled
Jan 1 02:00:02 dnsmasq[68]: started, version 2.52 cachesize 512
Jan 1 02:00:02 dnsmasq[68]: compile time options: IPv6 GNU-getopt no-RTC no-DBus no-I18N DHCP no-scripts no-TFTP
Jan 1 02:00:02 dnsmasq-dhcp[68]: DHCP, IP range 192.168.1.101 -- 192.168.1.254, lease time 1d
Jan 1 02:00:02 dnsmasq[68]: read /etc/hosts - 2 addresses
Jan 1 02:00:02 kernel: usb.c: registered new driver usbdevfs
Jan 1 02:00:02 kernel: usb.c: registered new driver hub
Jan 1 02:00:02 kernel: usb-ohci.c: USB OHCI at membase 0xb8003000, IRQ 6
Jan 1 02:00:02 kernel: usb-ohci.c: usb-00:03.0, PCI device 14e4:471a
Jan 1 02:00:02 kernel: usb.c: new USB bus registered, assigned bus number 1
Jan 1 02:00:02 kernel: hub.c: USB hub found
Jan 1 02:00:02 kernel: hub.c: 2 ports detected
Jan 1 02:00:03 kernel: ehci_hcd 00:03.1: PCI device 14e4:471a
Jan 1 02:00:03 kernel: ehci_hcd 00:03.1: irq 6, pci mem b8003800
Jan 1 02:00:03 kernel: usb.c: new USB bus registered, assigned bus number 2
Jan 1 02:00:03 kernel: ehci_hcd 00:03.1: USB 0.0 enabled, EHCI 1.00, driver 10 Dec 2004/2.4
Jan 1 02:00:03 kernel: hub.c: USB hub found
Jan 1 02:00:03 kernel: hub.c: 2 ports detected
Jan 1 02:00:03 kernel: usb.c: registered new driver usblp
Jan 1 02:00:03 kernel: printer.c: v0.13: USB Printer Device Class driver
Jan 1 02:00:03 kernel: Linux video capture interface: v1.00
Jan 1 02:00:03 kernel: SCSI subsystem driver Revision: 1.00
Jan 1 02:00:03 kernel: Initializing USB Mass Storage driver...
Jan 1 02:00:03 kernel: usb.c: registered new driver usb-storage
Jan 1 02:00:03 kernel: USB Mass Storage support registered.
Jan 1 02:00:03 kernel: hub.c: new USB device 00:03.1-1, assigned address 2
Jan 1 02:00:03 kernel: hub.c: USB hub found
Jan 1 02:00:03 kernel: hub.c: 4 ports detected
Jan 1 02:00:04 dnsmasq[68]: read /etc/hosts - 2 addresses
Jan 1 02:00:04 dhcp client: deconfig: lease is lost
Jan 1 02:00:04 kernel: hub.c: new USB device 00:03.1-1.1, assigned address 3
Jan 1 02:00:04 kernel: usb.c: USB device 3 (vend/prod 0x1410/0x2110) is not claimed by any active driver.
Jan 1 02:00:04 kernel: usb.c: deregistering driver usblp
Jan 1 02:00:05 kernel: usb.c: registered new driver serial
Jan 1 02:00:05 kernel: usbserial.c: USB Serial support registered for Generic
Jan 1 02:00:05 kernel: usbserial.c: Generic converter detected
Jan 1 02:00:05 kernel: usbserial.c: Generic converter now attached to ttyUSB0 (or usb/tts/0 for devfs)
Jan 1 02:00:05 kernel: usbserial.c: Generic converter detected
Jan 1 02:00:05 kernel: usbserial.c: Generic converter now attached to ttyUSB1 (or usb/tts/1 for devfs)
Jan 1 02:00:05 kernel: usbserial.c: Generic converter detected
Jan 1 02:00:05 kernel: usbserial.c: Generic converter now attached to ttyUSB2 (or usb/tts/2 for devfs)
Jan 1 02:00:05 kernel: usbserial.c: USB Serial Driver core v1.4
Jan 1 02:00:05 kernel: hub.c: new USB device 00:03.1-1.2, assigned address 4
Jan 1 02:00:06 kernel: scsi0 : SCSI emulation for USB Mass Storage devices
Jan 1 02:00:06 kernel: Vendor: JetFlash Model: TS4GJFV30 Rev: 8.01
Jan 1 02:00:06 kernel: Type: Direct-Access ANSI SCSI revision: 02
Jan 1 02:00:07 kernel: Attached scsi removable disk sda at scsi0, channel 0, id 0, lun 0
Jan 1 02:00:07 kernel: sda: Waiting for disc 0 to settle.
Jan 1 02:00:07 kernel: SCSI device sda: 7987200 512-byte hdwr sectors (4089 MB)
Jan 1 02:00:07 kernel: sda: Write Protect is off
Jan 1 02:00:07 kernel: Partition check:
Jan 1 02:00:07 kernel: /dev/scsi/host0/bus0/target0/lun0: p1 p2
Jan 1 02:00:10 pppd[111]: pppd 2.4.5 started by admin, uid 0
Jan 1 02:00:13 pppd[111]: Serial connection established.
Jan 1 02:00:13 pppd[111]: Using interface ppp0
Jan 1 02:00:13 pppd[111]: Connect: ppp0 <--> /dev/usb/tts/0
Jan 1 02:00:13 pppd[111]: PAP authentication succeeded
Jan 1 02:00:13 pppd[111]: local IP address **.***.***.**
Jan 1 02:00:13 pppd[111]: remote IP address 195.128.182.**
Jan 1 02:00:13 pppd[111]: primary DNS address 195.128.182.**
Jan 1 02:00:13 pppd[111]: secondary DNS address 195.128.182.**
Jan 1 02:00:13 dnsmasq[68]: read /etc/hosts - 2 addresses
Jan 1 02:00:13 dnsmasq[68]: using nameserver 195.128.182.**#53
Jan 1 02:00:13 dnsmasq[68]: using nameserver 195.128.182.**#53
Jan 1 02:00:14 Automatic IP: connected to ISP
Jan 1 02:00:14 kernel: Adding Swap: 2003736k swap-space (priority -1)
Mar 1 15:35:09 kernel: kjournald starting. Commit interval 5 seconds
Mar 1 15:35:09 kernel: EXT3-fs warning: mounting fs with errors, running e2fsck is recommended
Mar 1 15:35:09 kernel: EXT3 FS 2.4-0.9.19, 19 August 2002 on sd(8,2), internal journal
Mar 1 15:35:09 kernel: EXT3-fs: recovery complete.
Mar 1 15:35:09 kernel: EXT3-fs: mounted filesystem with ordered data mode.
Mar 1 15:35:10 pppd[111]: System time change detected.

Noobeum
01-03-2010, 17:53
сам крон запущен?
а у крона есть логи какие нибудь...

Vollsky
01-03-2010, 18:02
Кто подскажет проблема с cron не стартует скрипт в папке cron.5mins через 5 мин, и не стартует из папки init.d, и еще не стартует post-firewall в чем проблема подскажите ?
Попробуйте запустить скрипты вручную. Если не получится смотрите содержание(вк/пс например). Посмотрите в процессах наличие cron. Почитайте тему по установке cron там все подробно сказано.

PS Особо обратите внимание на файл crontab, chmod его должен быть 600.

YSL
02-03-2010, 13:35
C cron разобрался а вот post-firewall не стартует приходится запускать вручную где ошибка где смотреть автозапуск post-firewall?

al37919
02-03-2010, 13:46
http://wl500g.info/showpost.php?p=187272&postcount=21
http://wl500g.info/showpost.php?p=186041&postcount=22

YSL
05-03-2010, 08:23
http://wl500g.info/showpost.php?p=187272&postcount=21
http://wl500g.info/showpost.php?p=186041&postcount=22

Все перепроверил все равно post-firewall стартует через раз , запускаю вручную что не очень удобно. ПОМОГИТЕ !!!

MFMan
05-03-2010, 08:52
Все перепроверил все равно post-firewall стартует через раз , запускаю вручную что не очень удобно. ПОМОГИТЕ !!!

путь /usr/local/sbin/post-firewall? Права +x(755)? остальные скрипты в /usr/local/sbin/ запускаются?

YSL
05-03-2010, 17:34
путь /usr/local/sbin/post-firewall? Права +x(755)? остальные скрипты в /usr/local/sbin/ запускаются?

Проверил все правильно. Скрипты запускаются, модем из post-boot конектится. Удалил файл post-firewal, и создал снова все равно не запускается (((. Что делать ?

al37919
05-03-2010, 21:47
еще раз http://wl500g.info/showpost.php?p=187272&postcount=21
предпоследний пункт насчет logger --- точно в syslog строка отсутствует?

al37919
05-03-2010, 22:06
Jan 1 02:00:14 kernel: Adding Swap: 2003736k swap-space (priority -1)

кстати, 2 Гб свап --- это неимоверно круто. И что оно их целиком видит? Покажите пожалуйста вывод free

Дело в том, что согласно документации на mkswap максимальный размер свопа на MIPS равняется 512Мб, при этом на описание каждого килобайта используется 2 байта, т.е. для свопа в 2Гб расход ОЗУ на его обслуживание составит довольно значительные 4Мб.

YSL
06-03-2010, 07:56
еще раз http://wl500g.info/showpost.php?p=187272&postcount=21
предпоследний пункт насчет logger --- точно в syslog строка отсутствует?

в системном логе строчки logger -t $(basename $0) started. не оказалось.



кстати, 2 Гб свап --- это неимоверно круто. И что оно их целиком видит? Покажите пожалуйста вывод free

Дело в том, что согласно документации на mkswap максимальный размер свопа на MIPS равняется 512Мб, при этом на описание каждого килобайта используется 2 байта, т.е. для свопа в 2Гб расход ОЗУ на его обслуживание составит довольно значительные 4Мб.



[admin@(none) root]$ free
total used free shared buffers
Mem: 29960 29172 788 0 10360
Swap: 2003736 128 2003608
Total: 2033696 29300 2004396
[admin@(none) root]$


/usr/local/sbin/post-firewall


#!/bin/sh
iptables -F FORWARD
CFG="/opt/.cfg"
echo "#!/bin/sh" > $CFG
USR="/opt/etc/users"
cat $USR | awk '{print("iptables -A FORWARD -s",$2,"-j ACCEPT")}' >> $CFG
cat $USR | awk '{print("iptables -A FORWARD -d",$2,"-j ACCEPT")}' >> $CFG
sh $CFG

al37919
06-03-2010, 08:28
в системном логе строчки logger -t $(basename $0) started. не оказалось.
в логе нужно искать строку

... post-firewall started.

насчет свопа уже сказано выше из скромных 30Мб ОЗУ 4Мб тратится на его обслуживание, хотя вам за глаза хватило бы 128Мб вместо 2Гб. Хотя напрямую к проблеме post-firewall это отношение не имеет.

YSL
06-03-2010, 13:35
Есть строчка в логе

Jan 1 02:00:18 post-firewall: started.

al37919
06-03-2010, 14:26
Есть строчка в логе

Jan 1 02:00:18 post-firewall: started.
что и требовалось доказать. Значит post-firewall стартует, а дальше не работает ваша лабуда в нем. Напомню, скрипт выполняется до первой ошибки, после которой выполнение прекращается.

YSL
06-03-2010, 15:02
Что в нем неправильно ???!!!

#!/bin/sh
iptables -F FORWARD
CFG="/opt/.cfg"
echo "#!/bin/sh" > $CFG
USR="/opt/etc/users"
cat $USR | awk '{print("iptables -A FORWARD -s",$2,"-j ACCEPT")}' >> $CFG
cat $USR | awk '{print("iptables -A FORWARD -d",$2,"-j ACCEPT")}' >> $CFG
sh $CFG

ABATAPA
06-03-2010, 15:49
Что в нем неправильно ???!!!


sh -n имя_скрипта
- проверить синтаксис, не выполняя

sh -x имя_скрипта
- выполнить "в режиме отладки"

al37919
06-03-2010, 18:38
Что в нем неправильно ???!!!
откуда я знаю? я даже не понимаю что вы пытались реализовать данным скриптом и зачем. Скрипт завязан на файл /opt/etc/users существование/содержимое которого неизветсно.

ИМХО топик можно закрывать, т.к. тема: "Не стартуют скрипты автоматически." раскрыта.

P.S. как советует АВТАРА добавьте после #! /bin/sh

set -x
и запустите вручную

Black_Ru
18-03-2010, 13:36
В новой прошивке от Олега... Работает ли?

Пробовал набирать crontab -e ругается, на отсутствие папки. Поделитесь опытом...

MFMan
18-03-2010, 16:07
Лучше поставить из репозитория я так и сделал!

vectorm
18-03-2010, 16:07
В новой прошивке от Олега... Работает ли?

Пробовал набирать crontab -e ругается, на отсутствие папки. Поделитесь опытом...
А почитать инструкцию (http://www.macsat.com/cron.php) никак?

theMIROn
18-03-2010, 16:33
Лично у меня встроенный крон запускается через optware с флешки (мне так удобнее)

/opt/etc/crontabs/admin


#min h d m wday command
#-------------- ----------------------------------------------
0 0 * * * /opt/etc/cron.d/ddns_update


/opt/etc/init.d/S10crond


#!/bin/sh

prefix="/opt"
PATH=${prefix}/bin:${prefix}/sbin:/sbin:/bin:/usr/sbin:/usr/bin
NAME=crond
DAEMON=/usr/sbin/${NAME}
DAEMON_OPTS="-L /dev/null"
DAEMON_DIR=/var/spool/cron
CRONTABS_DIR=${DAEMON_DIR}/crontabs
CRONTABS_SRC=${prefix}/etc/crontabs

test -x $DAEMON || exit 0

mkdir -p ${DAEMON_DIR}
if [ ! -h "${CRONTABS_DIR}" ]; then
ln -s ${CRONTABS_SRC} ${DAEMON_DIR}
fi

if [ -z "$1" ] ; then
case `echo "$0" | sed 's:^.*/\(.*\):\1:g'` in
S??*) rc="start" ;;
K??*) rc="stop" ;;
*) rc="usage" ;;
esac
else
rc="$1"
fi

case "$rc" in
start)
echo -e -n "$NAME "
if [ -n "`pidof $NAME`" ]; then
echo -e "is already running."
else
echo -e "started."
$DAEMON $DAEMON_OPTS
fi
;;
stop)
echo -e -n "$NAME "
if [ -n "`pidof $NAME`" ]; then
echo -e "stopped"
killall $NAME 2> /dev/null
else
echo -e "is not running."
fi
;;
restart)
"$0" stop
sleep 1
"$0" start
;;
*)
echo "Usage: $0 (start|stop|restart|usage)"
;;
esac

MrGalaxy
18-03-2010, 18:44
А почитать инструкцию (http://www.macsat.com/cron.php) никак?Человек спрашивает про встроенный крон, а Вы посылаете к мануалу на устанавливаемый.:mad:

ЗЫ: кстати да, как пользоваться встроенным кроном? Я, конечно, понимаю, что с /opt его проще запускать, но всё-таки.

al37919
18-03-2010, 18:51
Человек спрашивает про встроенный крон, а Вы посылаете к мануалу на устанавливаемый.:mad:

ЗЫ: кстати да, как пользоваться встроенным кроном? Я, конечно, понимаю, что с /opt его проще запускать, но всё-таки.

Во первых, топикпастер сам не знает про что он спрашивает, т.к. он пишет про cron

Во вторых, между прочим Влад приводит пример использования именно встроенного /usr/sbin/crond ;)

И, наконец, краткая инструкция по использованию встроенного crond есть здесь: http://wl500g.info/showpost.php?p=67780&postcount=5

Black_Ru
18-03-2010, 20:08
Во первых, топикпастер сам не знает про что он спрашивает, т.к. он пишет про cron
http://wl500g.info/showpost.php?p=67780&postcount=5
во-первых, спрашивать про невстроенный крон мне бы даже в голову не пришло.

Спросил, потому что при соедении с роутером по ssh
на команду crontab -e - нет папки crontabs
запускается он только в ручную: crond start
но, как ни странно, работает... задания выполняет, но только если создать папку и запустить его ручками.
Хотя я, конечно перекомпилировал прошивку, включив опцию
suid, и все что связано с cron-om в busy box

al37919
18-03-2010, 22:12
cron в новой прошивке
в прошивке нет cron. cron есть в optware. В прошивке есть crond.

MrGalaxy
19-03-2010, 07:07
в прошивке нет cron. cron есть в optware. В прошивке есть crond.
Сразу трудно ответить?

MrGalaxy
19-03-2010, 22:01
Сейчас настроил крон из прошивки и снёс крон из /opt. Работает нормально.
Кто может объяснить, почему все не пользуются встроенным кроном, в чём его недостатки по ср. с тем, который устанавливается по ipkg?

al37919
20-03-2010, 09:13
почему все не пользуются встроенным кроном
не советую говорить за всех. Могу сказать за себя. У меня стоит cron из optware, поскольку когда я его первый раз настраивал мне попалась инструкция по настройке именно его. А далее --- раз работает, то не трогаем.

Black_Ru
20-03-2010, 17:47
Проблема была решена
http://www.wl500g.info/showthread.php?t=11928

P.S
Честно говоря, не знал - что такое flashfs
и как управлять сохранением своих настроек через терминал.

MrGalaxy
20-03-2010, 21:44
ОФФТОП


не советую говорить за всех. С чего Вы взяли? Никогда я за всех не говорил.
А все действительно не используют встроенный крон: часть народа использует крон из опта.

theMIROn
20-03-2010, 22:01
очевидно, не используют потому что не знают.
они немного отличается параметрами и синтаксисом.
то что выше я приводил - к встроенному (busybox) crond

MrGalaxy
22-03-2010, 19:36
ВопросеЦ:
Как настроить крон на срабатывание двух скриптов через каждые 5 минут, но чтобы выполнение их было сдвинуто друг относительно друга по времени на, скажем, 1 мин.?
Как настроить крон на срабатывание двух скриптов через каждую минуту, но чтобы выполнение их было сдвинуто друг относительно друга по времени на 20 с?

ЗЫ: наличие sleep в скриптах считаю некрасивым решением задачи "в лоб".
Может, кто чего подскажет...

theMIROn
22-03-2010, 19:53
Как настроить крон на срабатывание двух скриптов через каждые 5 минут, но чтобы выполнение их было сдвинуто друг относительно друга по времени на, скажем, 1 мин.?
очевидно, настроить срабатывание 1го скрипта в 5 минут, а 2го в 6


Как настроить крон на срабатывание двух скриптов через каждую минуту, но чтобы выполнение их было сдвинуто друг относительно друга по времени на 20 с?
очевидно, настроить срабатывание 1го скрипта в 1 минуту, а 2го в 1 минуту 20 секунд

MrGalaxy
22-03-2010, 23:15
Я понимаю. Как это дело прописать в кронтабе?

vectorm
23-03-2010, 14:51
Я понимаю. Как это дело прописать в кронтабе?
Примерно так:

5,15,25,35,45,55 * * * * admin /opt/etc/someshit5mins
6,16,26,36,46,56 * * * * admin /opt/etc/someshit6mins
*/1 * * * * admin /opt/etc/someshit1min
*/1.20 * * * * admin /opt/etc/someshit1.2min
Только с последней строчкой могу ошибаться, лень искать, как секунды прописать.
Вообще, полезная табличка:

#minute (0-59),
#| hour (0-23),
#| | day of the month (1-31),
#| | | month of the year (1-12),
#| | | | day of the week (0-6 with 0=Sunday).
#| | | | | commands
0 2 * * 0,4 /root/bin/logchecker

MrGalaxy
23-03-2010, 17:26
vectorm,
спасибо.

Ещё я заметил такую вещь, может кому будет полезна: у меня сейчас каталоги, содержащие скрипты, прописаны одновременно в /opt/etc и в /usr/local/etc (скрипты, разумеется, разные), так вот: скрипт vnstat.sh, помещённый в /opt/etc/cron.5mins, не отрабатывается при запуске через crond.
Скрипт рабочий - когда я его жмакаю через mc, он нормально обновляет статистику.
Попытался разнести по времени скрипты, помещённые в /opt/etc/crom.5mins и /usr/local/etc/cron.5mins. После этого статистика несколько раз обновилась, потом опять заглючила.
Сейчас в скрипте vnstat.sh указал явно путь к vnstat и уже несколько часов статистика обновляется.

theMIROn
23-03-2010, 17:35
Примерно так:
спасибо, кэп

MrGalaxy
23-03-2010, 19:12
Поискал в Интернете, поплясал с бубном вприсядку и готов внести свои 5 коп.:rolleyes:

Если необходимо периодически выполнять скрипт через заданный интервал, начиная не с первого элемента интервала (нулевой минуты, первого дня месяца и т.д.), то интервал следует записывать в виде a-b, где a - элемент, с которого надо начинать отсчёт, b - предыдущий элемент.

Например, необходимо запускать скрипт my_script1 через каждые 5 минут, начиная с 3-й минуты каждого часа (3-я, 8-я, 13-я, 18-я и т.д. минуты). Соответствующая запись в файле crontab будет выглядеть так:

3-2/5 * * * * my_script1

что эквивалентно записи

3,8,13,18,23,28,33,38,43,48,53,58 * * * * my_script1

vectorm
24-03-2010, 11:06
3,8,13,18,23,28,33,38,43,48,53,58,63,68,73,78,83,8 8,93,98 * * * * my_script1
Боюсь спросить - у Вас в часе сколько минут?

MrGalaxy
24-03-2010, 12:10
Боюсь спросить - у Вас в часе сколько минут?
:D:D:D
Спасибо, пост поправил.

Но схема, согласитесь, красивая. :) Только с секундами, к сожалению, ничего не выйдет (по крайней мере, я не нашёл инфы).

chyuliy
19-05-2010, 18:16
решила не создавать новую тему.
Суть такая - крон настроен, работает.
Мой crontab:

SHELL=/bin/sh
PATH=/opt/bin:/opt/sbin:/sbin:/bin:/usr/sbin:/usr/bin:
MAILTO=""
HOME=/
# ---------- ---------- Default is Empty ---------- ---------- #
# Syntax for lines is : minute hour day month dayofweek command #
*/5 * * * * admin run-parts /opt/etc/cron.5mins
01 * * * * admin run-parts /opt/etc/cron.hourly
02 4 * * * admin run-parts /opt/etc/cron.daily
22 4 * * 0 admin run-parts /opt/etc/cron.weekly
42 4 1 * * admin run-parts /opt/etc/cron.monthly
46 * * * * admin /opt/etc/cron.d/rrd-daily.sh

Все 5мин, часовые, недельные отрабатывают.
А вот последний rrd-daily.sh не отрабатывает ни каждые 46мин ни вообще, хотя отдельно запускается, разрешение на запуск есть.

dimez
20-05-2010, 14:31
Если скрипт не запускается в cron'е, но запускается из интерактивной консоли, значит, что ему не хватает каких-то переменных окружения. PATH у тебя прописан в crontab, значит, что-то ещё забыл.

VicSer
20-05-2010, 16:55
решила не создавать новую тему.
Суть такая - крон настроен, работает.
Мой crontab:

SHELL=/bin/sh
PATH=/opt/bin:/opt/sbin:/sbin:/bin:/usr/sbin:/usr/bin:
MAILTO=""
HOME=/
# ---------- ---------- Default is Empty ---------- ---------- #
# Syntax for lines is : minute hour day month dayofweek command #
*/5 * * * * admin run-parts /opt/etc/cron.5mins
01 * * * * admin run-parts /opt/etc/cron.hourly
02 4 * * * admin run-parts /opt/etc/cron.daily
22 4 * * 0 admin run-parts /opt/etc/cron.weekly
42 4 1 * * admin run-parts /opt/etc/cron.monthly
46 * * * * admin /opt/etc/cron.d/rrd-daily.sh

Все 5мин, часовые, недельные отрабатывают.
А вот последний rrd-daily.sh не отрабатывает ни каждые 46мин ни вообще, хотя отдельно запускается, разрешение на запуск есть.

Встречался с подобной проблемой в 2004 на FreeBSD, когда в конце последней строки стоял символ EOF(конец файла), а не символ 0А(перевод строки). Решалось переносом EOF на следующую строку. :)

chyuliy
20-05-2010, 21:15
поставила, жду 46 мин :)

VicSer
20-05-2010, 22:47
поставила, жду 46 мин :)

Как успехи? Решилась проблема?

chyuliy
21-05-2010, 07:32
да, теперь всё нормально.
Судя по всему изначально у меня не отрабатывался и monthly, просто, что он не использовался.
Поставила enter в конце, стало, как надо.
Спасибо

VicSer
21-05-2010, 09:21
да, теперь всё нормально.
Судя по всему изначально у меня не отрабатывался и monthly, просто, что он не использовался.
Поставила enter в конце, стало, как надо.
Спасибо

Вот и славненько. ;)

partner
19-06-2010, 13:26
Сейчас настроил крон из прошивки и снёс крон из /opt. Работает нормально.
Кто может объяснить, почему все не пользуются встроенным кроном, в чём его недостатки по ср. с тем, который устанавливается по ipkg?

MrGalaxy не могли бы Вы пожалуйста описать по порядку как настроить crond. Уже раз на пять перечитал топик и все ссылки с него, мозг кипит, понять не могу что и куда писать.

MrGalaxy
19-06-2010, 15:56
MrGalaxy не могли бы Вы пожалуйста описать по порядку как настроить crond. Уже раз на пять перечитал топик и все ссылки с него, мозг кипит, понять не могу что и куда писать.
А в чём конкретно затык?
1. Создаёте файл /var/spool/cron/crontabs/admin :

mkdir -p /var/spool/cron/crontabs
touch /var/spool/cron/crontabs/admin
2. заполняете его нужным содержимым, примеры есть в текущей ветке

vi /var/spool/cron/crontabs/admin
i
набор текста
ESC
:wq
Enter

3. прописываете его в /usr/local/.files :

echo "/var/spool/cron/crontabs/admin" >> /usr/local/.files
4. Запуск осуществляется командой

crond
(можно вставить в post-boot или post-mount)
5. Не забыть сохраниться

flashfs save
flashfs commit
flashfs enable

partner
19-06-2010, 16:17
MrGalaxy до меня не доходит как сделать по аналогии с cron-ом, чтобы каждый раз не редактировать crontab, а ложить скрипты по каталогам (как тут сделано http://wl500g.info/showpost.php?p=128993&postcount=5)

============================
Теоретическое отступление.
Мы создали эти директории, чтобы не заморачиваться каждый раз с редактированием crontab. Достаточно будет поместить скрипт в нужную нам папку и он будет выполняться в заданный нам промежуток.
cron.5mins - каждые 5 минут
cron.hourly - каждый час
cron.daily - ежедневно
cron.weekly - еженедельно
cron.monthly - ежемесячно
============================

Помогите плз. :rolleyes:

MrGalaxy
19-06-2010, 16:42
MrGalaxy до меня не доходит как сделать по аналогии с cron-ом, чтобы каждый раз не редактировать crontab, а ложить скрипты по каталогам (как тут сделано http://wl500g.info/showpost.php?p=128993&postcount=5)

============================
Теоретическое отступление.
Мы создали эти директории, чтобы не заморачиваться каждый раз с редактированием crontab. Достаточно будет поместить скрипт в нужную нам папку и он будет выполняться в заданный нам промежуток.
cron.5mins - каждые 5 минут
cron.hourly - каждый час
cron.daily - ежедневно
cron.weekly - еженедельно
cron.monthly - ежемесячно
============================

Помогите плз. :rolleyes:

Файл расписания встроенного crond - не crontabs, как у cron из optware, а /var/spool/cron/crontabs/admin. Структура файла такая же.

partner
19-06-2010, 17:07
Файл расписания встроенного crond - не crontabs, как у cron из optware, а /var/spool/cron/crontabs/admin. Структура файла такая же.

А cron.5mins, cron.hourly, cron.daily, cron.weekly, cron.monthly в какой папке создавать?

MrGalaxy
19-06-2010, 17:42
А cron.5mins, cron.hourly, cron.daily, cron.weekly, cron.monthly в какой папке создавать?

В любой, хоть во внутреннем флеше, хоть на hdd. Лично у меня они находятся в /usr/local/etc, чтобы не быть привязанными к hdd.

А, чуть не забыл! run-parts обязательно создайте, как описано в той ссылке, что Вы упоминали (http://wl500g.info/showpost.php?p=128993&postcount=5).

run-parts у меня помещён в /usr/local/bin

В качестве примера фрагмент моего файла admin:

08 * * * * /usr/local/bin/run-parts /usr/local/etc/cron.hourly
15 4 * * * /usr/local/bin/run-parts /usr/local/etc/cron.daily

partner
19-06-2010, 18:43
Спасибо MrGalaxy! Завтра попробую и отпишусь, а то уже мозг не варит.:)

miha
27-08-2010, 13:30
Подскажите, если кто знает.
Как заставить роутер Asus 500Gp самостоятельно перегружаться, например каждые сутки?
Может программку через telnet в него запихнуть какую?
Стоит последняя прошивка от Олега.
Спасибо.

andr128
27-08-2010, 13:53
Копайте в сторону Cron (поиск по сайту)

DmitryOlenin
09-10-2010, 22:29
Asus Wl 500gp. Прошивка 1.9.2.7-d-r1825.

Установил программы, как описано в
НАСТРОЙКА ASUS WL-500gP [DURAK EDITIONS] (http://wl500g.info/showthread.php?t=18096)

Требовалось запускать автоматом скрипт для работы интернета зонд (http://wl500g.info/showpost.php?p=183872&postcount=42).
А также настроить Squid (http://wl500g.info/showthread.php?t=24892) в качестве proxy-сервера.

Пока что не получается, к сожалению, ничего из вышеназаванного.
Начал с простого - cron и запуск по расписанию. И сразу проблемы...

Проблема в том, что скрипты программы "cron" не выполняются.
Вначале заметил, что процесс "141 admin 964 S /opt/sbin/cron" после перезагрузки аппарата выгрузился примерно через 50 минут.

Сейчас вроде добился того, что cron не выгружается, но скрипты по-прежнему не выполняются.

/usr/local/sbin
-rwxr-xr-x 1 admin root 44 Jan 1 03:03 post-mount
------------------------------------------------------------------------------------------------
/opt/etc/
-rw-rw-rw- 1 admin root 484 Jan 1 03:02 crontab
------------------------------------------------------------------------------------------------
/opt/bin/
-rwxr-xr-x 1 admin root 426 Oct 9 2010 run-parts
------------------------------------------------------------------------------------------------
/opt/etc/cron.5mins
-rwxr-xr-x 1 admin root 37 Jan 1 03:25 test.sh
-rwxr-xr-x 1 admin root 184 Jan 1 1970 zond.sh
------------------------------------------------------------------------------------------------
test.sh

#!/bin/sh

date >> /tmp/crontest.txt
------------------------------------------------------------------------------------------------

Файл /tmp/crontest.txt не создаётся.
Соответственно и скрипт zond.sh не отрабатывает.

Попробовал отредактировать файл /opt/etc/crontab, как в теме советовали:
# Syntax for lines is : minute hour day month dayofweek command #
0-59/5 * * * * admin run-parts /opt/etc/cron.5mins

Не помогло тоже :(

Подскажите пожалуйста, как сделать, чтобы всё заработало?

Nolik
06-12-2010, 11:30
Какой то бред... cron перестал работать.. сыпет такое сообщение

/opt/sbin/cron[133]: (CRON) DEATH (can't open or create /opt/var/run/cron.pid: Input/output error)

блин.. обновился на последний билд прошивки w500gp.. ssh отвалился..

jav
23-02-2011, 14:09
СRON не установлен, флешка не подключена, прошивка от "Вампик" DIR320-1.9.2.7-d-r2325M.trx, подключен 3g модем. Все это "дело" работает на ресивер. Как выключить(чтобы ночью не вставать:D) в определенное время. Если через Cron, можно-ли и как установить во внутреннюю память ДИР-320 ?

partner
23-02-2011, 14:14
в прошивке есть встроенный cron. на форуме писали как его настроить, поищи

voidshah
06-03-2011, 00:03
Я тут совсем новенький... Читаю, разбираюсь... Подскажите плз., А на "нашей;)" прошивке cron уже установлен или его на внешний винт ставить надо? Можно ли как-то узнать список установленного софта в проше? Хочу, чтобы WiFi по расписанию отключался, а вот как сделать:confused: Думаю что в cron скрипт можно запустить. И какими командами можно отключать\включать WiFi? На настройки веб-интерфейса прошу не посылать - это не совсем то. Я, допустим, хочу выключать WiFi в 1.00 и включать в 6.00.

disker
06-03-2011, 04:56
....Хочу, чтобы WiFi по расписанию отключался, .... выключать WiFi в 1.00 и включать в 6.00. Заходи Wireless-Advanced, Date to Enable Radio:-выставляются дни недели, по которым будет работать вайфай, Time of Day to Enable Radio:-время включения и выключения.

voidshah
06-03-2011, 11:39
Заходи Wireless-Advanced, Date to Enable Radio:-выставляются дни недели, по которым будет работать вайфай, Time of Day to Enable Radio:-время включения и выключения.

Там можно выставить интервал работы вайфай, а это не совсем то... Попробуй настрой согласно моим условиям;)

Нашел! http://www.dd-wrt.com/wiki/index.php/Wl_command

wl radio on
wl radio off

Как теперь к cron прикрутить??? Внешний винт обязателен?

AndreyUA
06-03-2011, 18:43
Там можно выставить интервал работы вайфай, а это не совсем то... Попробуй настрой согласно моим условиям;)

Нашел! http://www.dd-wrt.com/wiki/index.php/Wl_command

wl radio on
wl radio off

Как теперь к cron прикрутить??? Внешний винт обязателен?http://wl500g.info/showthread.php?t=21030&highlight=cron

Поиском знаете как пользоваться?

voidshah
06-03-2011, 19:14
пользовался;), да не нашел:o спс! бум изучать!:)

все получилось!!!

aNGEl0
10-03-2011, 12:01
день добрый
После того, как поднял сайт и форум на роутере, задумался над резервным копированием. Поскольку в консоли я еще отношу себя к нубам, посмотрел на скрипты других и родил свой, по образу и подобию. Использовал tar и cron, и вот что получилось:

#!/bin/sh
sleep 10s
DATE=`date +%Y-%m-%d`
DIREC=/tmp/harddisk/bckup/
DATEF=$DIREC/last
mkdir $DIREC$DATE
sleep10s
tar -zvcf $DIREC$DATE/opt-etc.tar.gz /opt/etc/
sleep 10s
tar -zvcf $DIREC$DATE/opt-share.tar.gz /opt/share/data.db
sleep 10s
tar -zvcf $DIREC$DATE/opt-share-www.tar.gz /opt/share/www/ --exclude=eset_upd --exclude=base.tar
sleep 10s
tar -zvcf $DIREC$DATE/usr-local-sbin.tar.gz /usr/local/sbin
if [ ! -e $DATEF ]
then
echo $DATE > $DATEF
fi

read OLDDATE < $DATEF
if [ "$DATE" \> "$OLDDATE" ]
then
rm $DIREC$OLDDATE/*
rmdir $DIREC$OLDDATE
echo $DATE > $DATEF
fi
/opt/etc/sms_py/send.py 79********7 Daily backup of router complete! Now restarting..
reboot

Теперь, собственно, возникает такая интересная ситуация:
1. при запуске вручную, скрипт отрабатывает прекрасно, выводя в консоль служебную информацию. При этом в папке /tmp/harddisk/bckup/$DATE складываются архивы с содержимым.
2. При запуске cron'ом, скрипт стартует, доходит до конца (о чем я получаю уведомление СМСкой), однако, в папке /tmp/harddisk/bckup/$DATE лежит архив opt-etc.tar.gz с размером, похожим на правду, и остальные три архива с размером в 20 байт. Кроме того, opt-etc.tar.gz содержит не все файлы.
Что сделать, чтобы все работало, куда стоит запилить свое лицо? или, может, как сделать лучше\правильнее?
Спасибо зха внимание, жду ответов.
з.ы. Да, софт ставил скриптом для чайников.

al37919
10-03-2011, 12:16
либо второй строкой прописать

PATH=...
с желаемыми путями, либо все бинарники указывать с полными путями.

Автоматом у вас вызывается /bin/tar, а из интерактивного шела /opt/bin/tar а это две большие разницы.

aNGEl0
10-03-2011, 12:29
либо второй строкой прописать

PATH=...
с желаемыми путями, либо все бинарники указывать с полными путями.

Автоматом у вас вызывается /bin/tar, а из интерактивного шела /opt/bin/tar а это две большие разницы.

А почему тогда первый архив содержит какие-то файлы, а остальные - нет?
Исправил везде tar на /opt/bin/tar, сегодня ночью посмотрим.
Да, подскажите пожалуйтса, как будет правильнее сделать так, чтобы хранился не один бэкап за прошлый день, а несколько бэкапов за несколько предыдущих дней (5-7-10)?

FilimoniC
10-03-2011, 14:34
Да, подскажите пожалуйтса, как будет правильнее сделать так, чтобы хранился не один бэкап за прошлый день, а несколько бэкапов за несколько предыдущих дней (5-7-10)?
Вариант "в лоб" - архив на неделю -
- Удаляем все *$DAY_OF_WEEK.tar.gz
- Создаем новый файл XXXXXX$DAY_OF_WEEK.tar.gz

aNGEl0
10-03-2011, 14:55
Вариант "в лоб" - архив на неделю -
- Удаляем все *$DAY_OF_WEEK.tar.gz
- Создаем новый файл XXXXXX$DAY_OF_WEEK.tar.gz
т.е. отдельным скриптом на weekly?
Хотелось бы все аккуратно одним скриптом организовать, чтобы циклично удалялось.

FilimoniC
10-03-2011, 15:01
т.е. отдельным скриптом на weekly?
Хотелось бы все аккуратно одним скриптом организовать, чтобы циклично удалялось.

Весь быкап делается в файл. Сейчас у вас каждый запуск-новый быкап (в пределах дня)
DATE=`date +%Y-%m-%d`
Вам надо

tar -zvcf $DIREC$DATE/opt-etc.tar.gz /opt/etc/

заменить на
rm -rf $DIREC$DAYOFWEEK
tar -zvcf $DIREC$DAYOFWEEK/opt-etc.tar.gz /opt/etc/

DAYOFWEEK так же получите `date +%(что-то)`

Так вы будете получать бэкапы /tmp/harddisk/bckup/Mon/...bz, /tmp/harddisk/bckup/Tue/...bz, /tmp/harddisk/bckup/Wed/...bz

Единственное "НО" - не делайте DAYOFWEEK численной. Потом будет проблемнее - будете думать что 7 это семь дней назад, а на самом деле это воскресенье.

P.PS ДА, ЭТО ИЗВРАЩЕНИЕ.

aNGEl0
11-03-2011, 10:50
А почему тогда первый архив содержит какие-то файлы, а остальные - нет?
Исправил везде tar на /opt/bin/tar, сегодня ночью посмотрим.

та же ситуация.
Размеры файлов после запуска вручную:
opt-etc.tar.gz 410191
opt-share-www.tar.gz 4926801
opt-share.tar.gz 63590
usr-local-sbin.tar.gz 12739
У всех архивов права 744.
Размеры файлов после запуска кроном:
opt-etc.tar.gz 326679
opt-share-www.tar.gz 20
opt-share.tar.gz 20
usr-local-sbin.tar.gz 20
У всех архивов права 644.
НА всякий случай, измененный код скрипта:

#!/bin/sh
sleep 10s
DATE=`date +%Y-%m-%d`
DIREC=/tmp/harddisk/bckup/
DATEF=$DIREC/last
mkdir $DIREC$DATE
sleep10s
/opt/bin/tar -zvcf $DIREC$DATE/opt-etc.tar.gz /opt/etc/
sleep 10s
/opt/bin/tar -zvcf $DIREC$DATE/opt-share.tar.gz /opt/share/data.db
sleep 10s
/opt/bin/tar -zvcf $DIREC$DATE/opt-share-www.tar.gz /opt/share/www/ --exclude=eset_upd --exclude=base.tar
sleep 10s
/opt/bin/tar -zvcf $DIREC$DATE/usr-local-sbin.tar.gz /usr/local/sbin
if [ ! -e $DATEF ]
then
echo $DATE > $DATEF
fi

read OLDDATE < $DATEF
if [ "$DATE" \> "$OLDDATE" ]
then
rm $DIREC$OLDDATE/*
rmdir $DIREC$OLDDATE
echo $DATE > $DATEF
fi
/opt/etc/sms_py/send.py 7*********7 Daily backup of router complete! Now restarting..
reboot

FilimoniC, извращение - это как раз то, что надо :))
----------------------
может дело в том, что tar выводит сообщения в консоль? А когда скрипт выполняется cron'ом, выводить сообщения-то и некуда и происходит НЕЧТО?

al37919
22-03-2011, 12:52
разница в запуске скрипта из под крона от запуска из интерактивного шелла в переменных окружения. Вот в этом направлении и надо копать. Скажем, добавьте в ваш скрипт строку

export > /tmp/env.txt
и сравните результат

FilimoniC
22-03-2011, 13:16
НА всякий случай, измененный код скрипта:


/usr/bin/sleep 10s
DATE=`/usr/bin/date +%Y-%m-%d`
/usr/bin/mkdir $DIREC$DATE
if /usr/bin/[ ! -e $DATEF ]
if /usr/bin/[ "$DATE" \> "$OLDDATE" ]

/usr/bin/rm $DIREC$OLDDATE/*
/usr/bin/rmdir $DIREC$OLDDATE



Нужно добавлять путь везде. Пути добавил "типа как бы", скорее всего они дургие (/bin, /sbin, /usr/bin, /usr/sbin). Возможно также потребуется путь для [ , так как есть такой исполняемый файл и не факт что это реализовано в данном sh.

aNGEl0
22-03-2011, 16:43
Нужно добавлять путь везде. Пути добавил "типа как бы", скорее всего они дургие (/bin, /sbin, /usr/bin, /usr/sbin). Возможно также потребуется путь для [ , так как есть такой исполняемый файл и не факт что это реализовано в данном sh.
С создание директорий проблем нет, sleep добавил на всякий случай, когда уже начал разбираться в проблеме. В интернетах нарыл информацию, что эта проблема может быть связана все же с невозможностью вывода служебных сообщений tar-ом. Подправил сегодня скрипт - завтра посмотрим на результат. Отпишусь в любом случае.

FilimoniC
22-03-2011, 16:48
С создание директорий проблем нет, sleep добавил на всякий случай, когда уже начал разбираться в проблеме. В интернетах нарыл информацию, что эта проблема может быть связана все же с невозможностью вывода служебных сообщений tar-ом. Подправил сегодня скрипт - завтра посмотрим на результат. Отпишусь в любом случае.

Вечером выложу свой вариант, посмотрите.

FilimoniC
22-03-2011, 20:17
Как и обещал

Вечером выложу свой вариант, посмотрите.


#!/bin/sh
c_prefix=
/usr/bin/[B]logger $c_prefix Started
c_nvram_file=/tmp/nvram_set.cfg
c_ipkg_file=/tmp/ipkg_set.txt
c_flashfs_file=/tmp/flash.tar.gz
c_syslog_file=/tmp/syslog.log
c_svn_repo=/opt/share/svn/*
c_mail_login=XXX_SMTP_LOGIN@list.ru
c_mail_password=XXX_SMTP_PASSWORD
c_mail_recipient=XXX_EMAIL_TO
c_date=`/bin/date -u +%Y%m%d%H%M%S`
c_email_headers="Subject: [AUTOBACKUP]:v=1:from=`hostname`:type=full:date=$c_date"


/usr/bin/logger $c_prefix Saving flashfs to tmpfs..
flashfs save
/usr/bin/logger $c_prefix Saving nvram to $c_nvram_file
nvram show > $c_nvram_file
/usr/bin/logger $c_prefix Saving IPKG data to $c_ipkg_file
echo === === === INSTALLED === === === > $c_ipkg_file
/opt/bin/ipkg list_installed >> $c_ipkg_file
echo === === === UPDATING... === === === >> $c_ipkg_file
/opt/bin/ipkg update >> $c_ipkg_file
echo === === === UPGRADING... === === === >> $c_ipkg_file
/opt/bin/ipkg upgrade >> $c_ipkg_file


/usr/bin/logger $c_prefix Sending backup to $c_mail_recipient via mailbox $c_mail_login

#Одной строкой!
(echo "$c_email_headers" ; /bin/tar -cf - $c_flashfs_file $c_syslog_file $c_nvram_file $c_ipkg_file $c_svn_repo $0 | /bin/gzip -c -q -9 | /opt/bin/gpg2 -r PGP_KEY_EMAIL_ID -o - --encrypt | /usr/bin/uuencode `hostname`-$c_date-archive.tar.gz.gpg ) | /usr/sbin/sendmail -f $c_mail_login -au$c_mail_login -ap$c_mail_password -S smtp.list.ru:25 $c_mail_recipient

/usr/bin/logger $c_prefix Finished



В итоге:
на почту XXX_EMAIL_TO
от адреса XXX_SMTP_LOGIN@list.ru
сваливается письмо с темой
[AUTOBACKUP]:v=1:from=DOMINIQUE:type=full:date=20110322190200

с приложенным файлом
DOMINIQUE-20110322180501-archive.tar.gz.gpg
(TAR, сжатый gzip, зашифрованный GPG)

На Windows-машине стоит 7zip (http://www.7-zip.org/), GPG4Win (http://www.gpg4win.org)(из него используется Kleopatra (http://www.kde.org/applications/utilities/kleopatra/))
Расшифровываем файл Kleopatra'ой с помощью закрытой части GPG-ключа, получается .tar.gzip - архив. Он разархивируется и tar смотрится 7zip-ом...

Внутри исходя из скрипта:
c_nvram_file=/tmp/nvram_set.cfg - Данные NVRAM (это не тот файл который можно загрузить через WEB морду, только сами параметры!)
c_ipkg_file=/tmp/ipkg_set.txt (Данные IPKG)
c_flashfs_file=/tmp/flash.tar.gz (FlashFS)
c_syslog_file=/tmp/syslog.log (syslog)
c_svn_repo=/opt/share/svn/* - мой репозиторий SVN
И сам скрипт ($0) бэкапа, чтобы понять, что это за бэкап и к чему эти файлы вообще

UPD: Для бэкапов создал специально 2 почтовых ящика - на mail.ru и на gmail.com
Отправка идет с mail.ru, так как там можно по SMTP без SSL ходить на gmail, так как там место чуть более чем дофига.
Размер каждого вложения ~ 100 килобайт в моем случае.

UPD: Если кто научит слать sendmail-ом письма через GMAIL, буду безумно благодарен

FilimoniC
22-03-2011, 21:38
Главное:
1. Проверять работоспособность и возможность открытия файлов после какой-либо перенастройки роутера
2. Не потерять закрытую часть ключа GPG и пароль от нее, а так же пароль от ящика-получателя
3. Чистить ящик-получатель
4. Не забывать что объем письма обычно ограничен 20 Мбайтами, а письмо кодируется в base64, что значит в 3 меньший объем = 6 Мбайт. С учетом того, что томик Гарри Поттера занимает полтора мегабайта, для моих нужд вполне хватает :-)

В моем случае, при бэкапе каждые 2 часа объеме 0.1 Мб, при допущении того, что данные могут увеличиться в три раза (ФакторУмножения) за счет всякой ерунды и кодирования base64 , чистить ящик надо
ОбъемЯщика / (ОбъемПисьма*ФакторУмножения) / (24/ЧастотаБэкапов) = 8000 / (0.1*3) / (24/2) = 8000 / 0.3 / 12 = каждые 2222 дня, то есть раз в 6 лет. Но делаю я это намного чаще :-)

aNGEl0
22-03-2011, 22:08
респект и уважуха тебе, FilimoniC! :))
Я бы такое реализовывал те самые 6 лет =)
Но основной вопрос - опробованно ли это в кроне? если да, и результат положительный, то, непременно, ты крут :)
А если нет, то немножко допиливать все же придется. Думаю так, поскольку не нашел у тебя той фишки, которую я хочу проверить сегодня ночью. Завтра отпишусь о результатах, как и говорил.

FilimoniC
22-03-2011, 22:20
респект и уважуха тебе, FilimoniC! :))
Я бы такое реализовывал те самые 6 лет =)
Но основной вопрос - опробованно ли это в кроне? если да, и результат положительный, то, непременно, ты крут :)
А если нет, то немножко допиливать все же придется. Думаю так, поскольку не нашел у тебя той фишки, которую я хочу проверить сегодня ночью. Завтра отпишусь о результатах, как и говорил.

Да, работает.
Аккуратно с символами минуса "-" там иногда встречаются отдельно стоящие - так надо (это значит вывод в стандартный stdout\чтениче stdin, которые через пайп (|) передаются по конвейеру)

aNGEl0
23-03-2011, 07:23
Вот этот вариант заработал. Все-таки косяк был с невозможностью вывода служебных сообщений tar-ом при запуске его cron-ом

#!/bin/sh
sleep 10s
DATE=`date +%Y-%m-%d`
DIREC=/tmp/harddisk/bckup/
DATEF=$DIREC/last
mkdir $DIREC$DATE
sleep 10s
/opt/bin/tar -zvcf $DIREC$DATE/opt-etc.tar.gz /opt/etc > $DIREC$DATE/logfile1 2>&1
sleep 10s
/opt/bin/tar -zvcf $DIREC$DATE/opt-share.tar.gz /opt/share/data.db > $DIREC$DATE/logfile2 2>&1
sleep 10s
/opt/bin/tar -zvcf $DIREC$DATE/opt-share-www.tar.gz /opt/share/www --exclude=eset_upd --exclude=base.tar > $DIREC$DATE/logfile3 2>&1
sleep 10s
/opt/bin/tar -zvcf $DIREC$DATE/usr-local-sbin.tar.gz /usr/local/sbin > $DIREC$DATE/logfile4 2>&1
if [ ! -e $DATEF ]
then
echo $DATE > $DATEF
fi

read OLDDATE < $DATEF
if [ "$DATE" \> "$OLDDATE" ]
then
rm $DIREC$OLDDATE/*
rmdir $DIREC$OLDDATE
echo $DATE > $DATEF
fi
/opt/etc/sms_py/send.py 7*********7 Daily backup of router complete! Now restarting..
reboot

aNGEl0
24-03-2011, 12:33
UPD: Если кто научит слать sendmail-ом письма через GMAIL, буду безумно благодарен
Хм.. а sendmail --help разве не подсказывает, как это сделать? ;)

FilimoniC
24-03-2011, 12:39
Хм.. а sendmail --help разве не подсказывает, как это сделать? ;)

Показывает, но там какой-то кошмар. :-) Буду копать еще, но не к спеху.
Это скорее была просьба "сделайте все за меня, пожалуйста" :em:

agpecam
24-03-2011, 13:19
гуру помогите!
Всё перкопал, но крон у меня не работает. Написал тестовый скрипт ,который дату в файл добавляет и время. Закинул его в папку крона, которая каждые 5 минут должна обрабатываться.

При запуске этого скрипта файл время добавялется. при запуске второго скрипта run-parts тоже все добавляется.

В файле кронтаб в эту строку вместо админа своё имя вписал

*/5 * * * * admin run-parts /opt/etc/cron.5mins

не работает!

По fs крон в памяти висит.

vectorm
24-03-2011, 14:38
*/5 * * * * admin run-parts /opt/etc/cron.5mins

Путь полностью пропишите, как в оригинальной версии, из инструкции.

agpecam
24-03-2011, 16:40
Путь полностью пропишите, как в оригинальной версии, из инструкции.

Я делал так, как в инстурции DURAk EDITIONS копи-пасти.

Или лучше сделать по этой инструкции попробовать?
http://wl500g.info/showpost.php?p=52524&postcount=1
Или не понял ,что Вы имеете ввиду? Вроде аналогично.

И еще может в этом дело?

В директории /opt/etc/init.d/ нужно создать пять подкаталогов:

mkdir /opt/etc/cron.5mins
mkdir /opt/etc/cron.hourly
mkdir /opt/etc/cron.daily
mkdir /opt/etc/cron.weekly
mkdir /opt/etc/cron.monthly

а команды указаны для создания каталогов не в init.d

FilimoniC
24-03-2011, 18:59
Я делал так, как в инстурции DURAk EDITIONS копи-пасти.

Или лучше сделать по этой инструкции попробовать?
http://wl500g.info/showpost.php?p=52524&postcount=1
Или не понял ,что Вы имеете ввиду? Вроде аналогично.

И еще может в этом дело?

В директории /opt/etc/init.d/ нужно создать пять подкаталогов:

mkdir /opt/etc/cron.5mins
mkdir /opt/etc/cron.hourly
mkdir /opt/etc/cron.daily
mkdir /opt/etc/cron.weekly
mkdir /opt/etc/cron.monthly

а команды указаны для создания каталогов не в init.d

Кусок из скрипта запуска crond


#Путь к нашему _crontab. Он по сути не используется, но из него берутся данные.
c_opt_crontab=/opt/scripts/crontab/_crontab

#Дальше можно не трогать
c_main_crontab_dir=/var/spool/cron/crontabs
#Определение логина админа (0:0)
c_root_username=` cat /etc/passwd | /bin/grep :0:0: | /usr/bin/awk -F: '{print $1}'`
c_main_crontab_file=$c_main_crontab_dir/$c_root_username

mkdir -p $c_main_crontab_dir
touch $c_main_crontab_file

cat $c_opt_crontab >> $c_main_crontab_file

/usr/sbin/crond -b -S -c $c_main_crontab_dir


/opt/scripts/crontab/_crontab

SHELL=/bin/sh

#min hr dayOfM month dayOfW command
5 * * * * /opt/scripts/crontab/cron.hourly
10 1 * * * /opt/scripts/crontab/cron.daily
15 1 * * 1 /opt/scripts/crontab/cron.weekly



/opt/scripts/crontab/cron.* - файлы скриптов

Никаких run-parts; crond из прошивки (не тот что установлен через Ipkg)

agpecam
24-03-2011, 20:04
Путь полностью пропишите, как в оригинальной версии, из инструкции.


Усе! дошло! Пришел домой и сразу всё понял))
Спасибо огромное!!!

mr-butch
13-04-2011, 21:02
Доброго времени суток.
Не получается заставить работать cron. Установлен cron - 4.1-8. В процессах он висит, запускает по rc.unslung.
В opt/etc созданы папки cron.1min, cron.5mins. В opt/bin создан run-parts.

opt/etc/crontab:
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/opt/sbin:/opt/bin
MAILTO=""
HOME=/
# ---------- ---------- Default is Empty ---------- ---------- #
*/1 * * * * admin /opt/bin/run-parts /opt/etc/cron.1mins
*/5 * * * * admin /opt/bin/run-parts /opt/etc/cron.5mins

В Status & Log - System Log есть строки:
/opt/sbin/cron[491]: (admin) CMD (/opt/bin/run-parts /opt/etc/cron.5mins )
/opt/sbin/cron[492]: (admin) CMD (/opt/bin/run-parts /opt/etc/cron.1min )
но ни один скрипт помещенный в папки cron.1min, cron.5mins не исполняется. Куда копать, что не так сделал?

reiten
13-04-2011, 21:18
А что выдает
/opt/bin/run-parts --test /opt/etc/cron.1mins
?
Первое, что приходит в голову - проверить права доступа на скрипты в /opt/etc/cron.1mins

mr-butch
14-04-2011, 06:42
А что выдает /opt/bin/run-parts --test /opt/etc/cron.1mins ?

ничего не выдает, тишина. Что должно быть?

[admin@Link root]$ ls -l /opt/etc/cron.5mins/copy.sh
-rwxr-xr-x 1 admin root 413 2011-04-13 10:27 /opt/etc/cron.5mins/copy.sh

mr-butch
14-04-2011, 08:08
$ chmod 600 /opt/etc/crontab

$ ls -l /opt/etc/crontab
-rw------- 1 admin root 496 2011-04-13 10:49 /opt/etc/crontab
Повторил команду chmod еще раз. Безрезультатно.

mr-butch
14-04-2011, 09:53
$ ls -l /opt/etc/cron*




$ ls -l /opt/etc/cron*
-rw------- 1 admin root 496 2011-04-13 10:49 /opt/etc/crontab

/opt/etc/cron.1min:
total 3
-rwxr-xr-x 1 admin root 139 2009-05-11 17:15 ados.sh
-rwxr-xr-x 1 admin root 1070 2011-04-13 08:33 copy.sh

/opt/etc/cron.5mins:
total 1
-rwxr-xr-x 1 admin root 413 2011-04-13 10:27 copy.sh

/opt/etc/cron.d:
total 0

/opt/etc/cron.daily:
total 0

/opt/etc/cron.hourly:
total 0

/opt/etc/cron.monthly:
total 0

/opt/etc/cron.weekly:
total 0

vectorm
14-04-2011, 10:27
$ ls -l /opt/etc/cron*

Содержимое файлика хоть одного покажите.

ryzhov_al
14-04-2011, 10:36
Первая видимая ошибка - 1mins. В кронтабе указана:


opt/etc/crontab:
...
*/1 * * * * admin /opt/bin/run-parts /opt/etc/cron.1mins
...
Куда копать, что не так сделал?
А папка называется:



$ ls -l /opt/etc/cron*
-rw------- 1 admin root 496 2011-04-13 10:49 /opt/etc/crontab

/opt/etc/cron.1min:
total 3 Правьте opt/etc/crontab

mr-butch
14-04-2011, 10:42
Содержимое файлика хоть одного покажите.

Конечно.

#!/bin/sh
path=/opt/var/log/queue/
file_name=`ls -l "$path"*.txt | grep '\d+\.txt' -P -o -num 1 | grep '\d+\.txt' -P -o`
file_name="$path""$file_name"
cp "$file_name" /opt/var/log/queue_arhives

При запуске вручную этого скрипта все отрабатывает. Возможно с чем то конфликты, с каким то другим установленным пакетом :confused:

mr-butch
14-04-2011, 10:44
Правьте opt/etc/crontab

Это я исправил сразу. Но не в этом суть. Скрипт и в 5-ти минутном таймере лежит. Не один не отрабатывает.

ryzhov_al
14-04-2011, 10:54
1. Запишите в папку /opt/etc/cron.1min скрипт hello.sh следующего содержания:

#!/bin/sh
echo "Hello, world!"
2. Запустите его:

$ /opt/bin/run-parts /opt/etc/cron.1min
3. Вывод:

если в консоли ничего не появится, то ковыряйте скрипт run-parts,
если в консоли вывод "hello" появится, то колупайте cron.

Кроме того, убедитесь, что остальные скрипты, находящиеся в папке /opt/etc/cron.1min возвращают управление в консоль, а не "вешаются" на неопределённое время.

mr-butch
14-04-2011, 12:12
Запустите:

$ /opt/bin/run-parts /opt/etc/cron.1min


Запускаю /opt/bin/run-parts /opt/etc/cron.1min, "hello world" вижу, отрабатывает.



3. Вывод:

если в консоли вывод "hello" появится, то колупайте cron.

Кроме того, убедитесь, что остальные скрипты, находящиеся в папке /opt/etc/cron.1min возвращают управление в консоль, а не "вешаются" на неопределённое время.

Скрипт один, копиование файла, вешать не должен. Листинг приводил. Где взять предыдущую версию Cron? Это я пару раз уже безрезультатно переустанавливал.

ryzhov_al
14-04-2011, 12:18
Версия cron ни при чём. Настраивайте cron, следуйте ВСЕМ рекомендациям из man cron и man crontab, как-то: символы переноса строк, символы табуляции в конце строк, ^M за последней строкой и прочие.

Потрудитесь потратить 30 минут своего времени, а не времени окружающих на чтение документации. Дальнейшие вопросы по настройки cron'а буду считать троллингом.

FilimoniC
14-04-2011, 12:52
Используйте встроенный cron. Щачем вам внешний?
Кстати, есть такая программа logger
Формат
logger text message

Сует text nessage в syslog. Полезно в скриптах использовать

mr-butch
14-04-2011, 14:13
Разобрался, проблема в скрипте.
Точнее код

ls -l /opt/var/log/queue/*.txt | grep '\d+\.txt' -P -o -num 1 | grep '\d+\.txt' -P -o

который спокойно выполняется при ручном запуске скрипта, не хочет выполняться через Cron. Если копировать абсолютным путем, то по Cron отрабатывает и копирует, а по grep Cron отрабатывать не хочет.

al37919
14-04-2011, 16:00
пишите все бинарники, как то ls, grep итд с полными путями, либо в начале файла в явном виде задавайте PATH

mr-butch
14-04-2011, 19:47
пишите все бинарники, как то ls, grep итд с полными путями, либо в начале файла в явном виде задавайте PATH

:) Спасибо, все заработало!!

ryzhov_al
17-04-2011, 18:18
Прошу обратить внимание, что в отличие от optware'овского cron, crond из busybox'а при исполнении shell-скриптов не использует настройки профиля пользователя. При необходимости, прописывайте переменные PATH, LANG, TERM и другие прямо в теле скриптов.

al37919
17-04-2011, 18:38
в отличие от optware'овского cron, crond из busybox'а при исполнении shell-скриптов не использует настройки профиля пользователя.
Все pre-*/post-* скрипты из которых производится запуск как оптварного cron, так и crond из прошивки, а также всего того, что пользователь хочет запускать автоматом при старте устройства, запускаются процессом /sbin/init и никакие пользовательские профили там недействительны.

tempik
17-04-2011, 20:02
Все pre-*/post-* скрипты из которых производится запуск как оптварного cron, так и crond из прошивки, а также всего того, что пользователь хочет запускать автоматом при старте устройства, запускаются процессом /sbin/init и никакие пользовательские профили там недействительны.
+1
Вообще при написании скриптов старайтесь ВСЕГДА указывать полный путь от "/" (можно в переменной в начале файла), тогда 50% неправильной работы скрипта будет исключено ... и крики "вот из консоли работает, а при загрузке нет" просто будут исключены ...

ryzhov_al
17-04-2011, 20:12
Проверил, согласен. В момент исполнения shell-скриптов по cron'у установлены лишь переменные, указанные в crontab. Проверял так:
1. Создаю файлик:

$ cat /tmp/harddisk/getenvvars.sh
#!/bin/sh
set > /tmp/harddisk/env.txt
2. Создаю соответствующее задание в crontab:

$ cat /opt/etc/crontab
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/opt/bin:/opt/sbin
MAILTO=""
HOME=/
# ---------- ---------- Default is Empty ---------- ---------- #
#min hr dayOfM month dayOfW command
*/1 * * * * root /tmp/harddisk/getenvvars.sh
...
3. Перегружаю роутер для того, чтобы cron стартовал от /sbin/init, а не из моей shell-среды. Смотрю в syslog:

Apr 17 21:55:01 cron[769]: (root) CMD (/opt/etc/cron.1min/getenvvars.sh^I)
4. Вижу, что переменные среды в момент исполнения скрипта были следующие:

$ cat /tmp/harddisk/env.txt
HOME='/'
IFS='
'
LOGNAME='root'
MAILTO=''
PATH='/sbin:/bin:/usr/sbin:/usr/bin:/opt/bin:/opt/sbin'
PPID='773'
PS1='\w \$ '
PS2='> '
PS4='+ '
PWD='/'
RUNDIR='/tmp/harddisk/*'
SHELL='/bin/sh'
USER='root'
i='/tmp/harddisk/getenvvars.sh'

Я хотел отметить следующий момент. Выше приведён вариант отработки скрипта средствами cron из optware. Если попытаться использовать crond из прошивки, то при отработке скрипта в логе появляется строка:

Apr 17 21:47:01 crond[554]: crond: USER root pid 782 cmd god /tmp/harddisk/getenvvars.sh
но скрипт не выполняется, причём в процессах намертво повисает

$ ps afx
PID TTY STAT TIME COMMAND
...
554 ? Ss 0:00 crond -b -S -c /var/spool/cron/crontabs
766 ? Z 0:00 \_ [sh] <defunct>
765 ? Z 0:00 \_ [sh] <defunct>

Ч.д?

partner
19-04-2011, 17:32
Что означает строка в системном логе после которой падает cron
Apr 19 21:35:07 /opt/sbin/cron[22691]: (CRON) DEATH (can't lock /opt/var/run/cron.pid, otherpid may be 22619: Resource temporarily unavailable)
Как ее победить?

FilimoniC
20-04-2011, 06:58
Что означает строка в системном логе после которой падает cron
Apr 19 21:35:07 /opt/sbin/cron[22691]: (CRON) DEATH (can't lock /opt/var/run/cron.pid, otherpid may be 22619: Resource temporarily unavailable)
Как ее победить?

Либо у вас второй крон запущен, либо этот файл просто снести надо