vixie-cron не выполняет задания [SOLVED]

Здравствуйте уважаемые.

Поставил систему, все отлично работает, решил вот пару заданий выполнять в определенное время для этого поставил vixe-cron, все поставилось отлично, никаких варнингов и прочего, создал скрипт, простой, я его вручную выполняю, в лог пишется результат, переместил его в каталог, в crontab -e указал путь и время, причем все правила соблюдал, по замыслу скрипт должен исполнятся каждые 5-ть минут, но в логах ничегои действий никаких не производит, сосбтвенно действие то обыкновенный пинг с количесвом пакетов равным 10-ти, в лог пишется сколько прошло пингов а сколько нет, если в ручную то скрипт все пишет в лог прекрасно и он исполняется без проблем а вот в кроне не исполянет, в логе messages пишет:

cron[5482]: (root) CMD (/bin/run-parts /etc/cron.5minutly 1>/dev/null 2>/dev/null)

а результата в логе нет...
Не подскажете в чем может быть проблемка?

вот crontab -e:

# 1> /dev/null
# min hour day month weekday command
*/5 * * * * /bin/run-parts /etc/cron.5minutly 1>/dev/null 2>/dev/null
<тут пустая строка>

во-первых, тогда уж

во-первых, тогда уж правильней:
*/5 * * * * /bin/run-parts /etc/cron.5minutly >/dev/null 2>&1

во-вторых, а что в /etc/cron.{allow,deny}?

в-третьих, приведён синтаксис запуска пользовательского
крона, а рутовый-то уже запущен при старте системы. ;)
для рута, кажется, достаточно отредактировать /etc/crontab
и послать kill -HUP процессу /usr/sbin/cron

:

klark73 написал(а):
во-первых, тогда уж правильней:
*/5 * * * * /bin/run-parts /etc/cron.5minutly >/dev/null 2>&1

во-вторых, а что в /etc/cron.{allow,deny}?

в-третьих, приведён синтаксис запуска пользовательского
крона, а рутовый-то уже запущен при старте системы. ;)
для рута, кажется, достаточно отредактировать /etc/crontab
и послать kill -HUP процессу /usr/sbin/cron

В принципе я никогда не редактировал /etc/cron (уже не на первый десяток машин ставил gentoo с vixie-cron) и никогда проблем с кроном не возникало с запуском по расписанию заданий, ну а строка ту которую я привел, тоже вполне подходящая и не противоречащая, да и cron записан дефолтно при запуске системы он автоматом загружается и действует под рутом, в самой ос кроме рута (я имею в виду рабочих пользователей) никого нет и все сервисы стартутют под рутом т.к. эта машина никак с внешним миром не общается и интернета у него на данный момент нет и не предвидится.
Никаких ошибок /etc/cron.deny нет.

И всё же стоит попробовать ;)

Раз работает, ваш файл должен сохраняться сюда:
less /var/spool/cron/crontabs/root -- проверьте.
crontab -l

Похоже, задание запускается и выполняется, судя по логу.
Так что добавить не чего, вариант (1), попробуйте.

Я вариант (3) делал - тоже без проблем.
можно вместо kill -HUP просто /etc/init.d/vixie-cron restart

:

klark73 написал(а):
Раз работает, ваш файл должен сохраняться сюда:
less /var/spool/cron/crontabs/root -- проверьте.
crontab -l

Похоже, задание запускается и выполняется, судя по логу.
Так что добавить не чего, вариант (1), попробуйте.

Я вариант (3) делал - тоже без проблем.
можно вместо kill -HUP просто /etc/init.d/vixie-cron restart

Ах да, забыл, я после добавления рестартовывал сервис крон-а... как же... точно точно, но и этот способ никак не повлиял на результат, даже больше напишу, я стал сомневатся что я правильно установил крон, решил уточнить ключи юзе, переустановил emerge -C vixie-cron а потом снова emerge -av vixie-cron убедившишись что ключи что по дефолту вполне устраивают, написал Yes и переустановил cron, снова вписал в crontab -e задание (с пустой строчкой в конце, писали что так нужно), сохранил, убедился crontab -l в том что задание пристутствует, перезагрузил крон /etc/init.d/vixie-cron restart успешно перезапустился, подождал 5-ть минут а результат "0"... куда копать?
P.S. Кстати по команде less /var/spool/cron/crontabs/root мое задание тоже присутствует.

значит задание-то выполняется!

> по команде less /var/spool/cron/crontabs/root мое задание тоже присутствует

Главное, что присутствует в логе это:
cron[5482]: (root) CMD (/bin/run-parts /etc/cron.5minutly 1>/dev/null 2>/dev/null)

значит задание-то выполняется! ;)

вот это просто измените и всё:
1>/dev/null 2>/dev/null
на:
>/dev/null 2>&1

а там уже первыми строчками:
#!/bin/bash
logger "My JOB Started! :)"

и права на файл chmod +x /bin/run-parts...

:

Цитата:
вот это просто измените и всё:
1>/dev/null 2>/dev/null
на:
>/dev/null 2>&1

Вот это попробую, результат отпишу

:

Не помогло...
команда

Цитата:
chmod +x /bin/run-parts

выдал следуещее

Цитата:
chmod: невозможно получить доступ к `/bin/run-parts': Нет такого файла или каталога

Вот и разобрались в проблеме! :)

я эту команду (/bin/run-parts) скопировал из вашего же журнала!
задание выполняется в точности, как вы его написали в crontab-е,
запись попадает в журнал, что задание запущено,
но поскольку путь неверный, ничего больше не происходит... ;)

:

klark73 написал(а):
я эту команду (/bin/run-parts) скопировал из вашего же журнала!
задание выполняется в точности, как вы его написали в crontab-е,
запись попадает в журнал, что задание запущено,
но поскольку путь неверный, ничего больше не происходит... ;)

*/5 * * * * /bin/run-parts /etc/cron.5minutly >/dev/null 2>&1
/bin/run-parts - этот путь у меня на соседнем сервере так же пристутсвует в задании, а задание откуда выполнять берется из пути /etc/cron.5minutly, этот путь /bin/run-parts вообще не нужно указывать?
Нужно просто в задании вот так написать?
*/5 * * * * /etc/cron.5minutly >/dev/null 2>&1
и все?

Если речь идёт о

Если речь идёт о пользовательском кроне, то его формат:
ПЕРИОД КОМАНДА [ПАРАМЕТРЫ]

КОМАНДА - это то, что имеет право на исполнение в оболочке (SHELL=)
В глобальном рутовом /etc/crontab-е между ПЕРИОДОМ и КОМАНДОЙ
есть ещё одно поле ЮЗЕР (от имени которого будет запущено задание)
но вообще-то это всё RTFM! ;)

Короче, какую команду нужно периодически выполнять, ту и ставьте...

:

klark73 написал(а):
Если речь идёт о пользовательском кроне, то его формат:
ПЕРИОД КОМАНДА [ПАРАМЕТРЫ]

КОМАНДА - это то, что имеет право на исполнение в оболочке (SHELL=)
В глобальном рутовом /etc/crontab-е между ПЕРИОДОМ и КОМАНДОЙ
есть ещё одно поле ЮЗЕР (от имени которого будет запущено задание)
но вообще-то это всё RTFM! ;)

Короче, какую команду нужно периодически выполнять, ту и ставьте...

Попробую вот это
*/5 * * * * /etc/cron.5minutly >/dev/null 2>&1
результат отпишу

Если дать такую

Если дать такую команду:
/etc/cron.5minutly >/dev/null 2>&1
с консоли и она будет делать то, что вам надо,
конечно же всё должно работать!...

:

klark73 написал(а):
Если дать такую команду:
/etc/cron.5minutly >/dev/null 2>&1
с консоли и она будет делать то, что вам надо,
конечно же всё должно работать!...

в общем то с такой строкой в крон-е задание стало выполнятся:
*/5 * * * * /etc/cron.5minutly/p.sh >/dev/null 2>&1
Но а если в каталоге /etc/cron.5minutly не одно а 100 заданий, с разными именами, мне что плодить 100 строк для каждого задания о_0 ?
Вот у меня на одном из компьютеров в каталоге /etc/cron.5minutly имеются 8 заданий которые должны выполнятся, и они выполняются без проблем со строкой
*/5 * * * * /bin/run-parts /etc/cron.5minutly 1>/dev/null 2>/dev/null

как тут то быть?

^

Кстати сейчас в этот каталог /etc/cron.5minutly добавил второе задание, строку изменил на
*/5 * * * * /etc/cron.5minutly/* >/dev/null 2>&1
первое задание исполняется а второе нет... о как о_0.
сервис рестартовывал.

:

Где собака то порылась?
Если кто знает, объясните мне пожалуйста почему с такой строкой
*/5 * * * * /bin/run-parts /etc/cron.5minutly 1>/dev/null 2>/dev/null
на одном сервере выполняется прекрасно а на другом вообще не исполняет как нужно?

По-моему, всё

По-моему, всё очевидно:

sidsoft67 написал(а):
chmod: невозможно получить доступ к `/bin/run-parts': Нет такого файла или каталога

Похоже, нету у тя почему-то /bin/run-parts :) , если ты конечно из под рута птался поменять права.
Сдлеай ls -l /bin/run-parts
Если его таки точно нету, то revdep-rebuild.

PS Из консоли команда /bin/run-parts --test /etc/cron.5minutly выполняется? Если да, то что выводит?

:

joper написал(а):
По-моему, всё очевидно:

sidsoft67 написал(а):
chmod: невозможно получить доступ к `/bin/run-parts': Нет такого файла или каталога

Похоже, нету у тя почему-то /bin/run-parts :) , если ты конечно из под рута птался поменять права.
Сдлеай ls -l /bin/run-parts
Если его таки точно нету, то revdep-rebuild.

PS Из консоли команда /bin/run-parts --test /etc/cron.5minutly выполняется? Если да, то что выводит?

#ls -l /bin/run-parts
ls: невозможно получить доступ к /bin/run-parts: Нет такого файла или каталога

# /bin/run-parts --test /etc/cron.5minutly
-bash: /bin/run-parts: Нет такого файла или каталога

# revdep-rebuild
-bash: revdep-rebuild: команда не найдена

Всё ясно. пересобери

Всё ясно.
пересобери sys-apps/debianutils

ЗЫ: ЧТобы был revdep-rebuild поставь gentoolkit.

Есть /bin/run-parts там, но не тут ;)

> Вот у меня на одном из компьютеров в каталоге /etc/cron.5minutly имеются 8 заданий которые должны выполнятся, и они выполняются без проблем со строкой

Вот и перепишите с того компьютера исполняемый скрипт /bin/run-parts, которого тут у вас нету.
Совершенно очевидно, что речь идёт о реализации принципа, аналогичного скрипту /usr/sbin/run-crons "искоробки".
O_o, ну и сказанул! /bin/run-parts входит в debianutils, это не скрипт!

:

В общем то run-parts я скопировал, и все теперь работает нормально, но вот я хочу выяснить происхождение этого ELF-файла? Вместе с каким пакетом он ставится или при каких ключах юзе он появляется?

.

equery belongs /bin/run-parts

Вам же выше об этом дважды написали! =)))

Всё ясно.
пересобери sys-apps/debianutils

O_o, ну и сказанул! /bin/run-parts входит в debianutils, это не скрипт!

:

На машинах на которых устанавливал Gentoo до этой, run-parts появлялось без каких либо усилий и установок пакетов дебиана и прочего, видимо подтягивался "автоматом" с vixie-cron, сейчас же видимо её убрали. Это мое личное мнение или скорее догадка не более. Почему её убрали не ясно.

Не хотелось бы вас огорчать...

Вы верно заметили, что подтягивался пакетик автоматом.
Специально решил запостить с машины, настроенной ДВА ГОДА НАЗАД.
МИР там с тех пор не обновлялся! ;)

equery d debianutils
app-portage/gentoolkit-0.2.2

eix debianutils
Installed: 2.15-r1(00:24:21 07.02.2007)

На современной настройке это осталось в силе
(sys-apps/debianutils-2.28.5), только теперь
ещё и ca-certificates его же подтягивают...

А gentoolkit стоит, наверное, у каждого
красноглазого гентушнега!... =)))

:

klark73 написал(а):
Вы верно заметили, что подтягивался пакетик автоматом.
Специально решил запостить с машины, настроенной ДВА ГОДА НАЗАД.
МИР там с тех пор не обновлялся! ;)

equery d debianutils
app-portage/gentoolkit-0.2.2

eix debianutils
Installed: 2.15-r1(00:24:21 07.02.2007)

На современной настройке это осталось в силе
(sys-apps/debianutils-2.28.5), только теперь
ещё и ca-certificates его же подтягивают...

А gentoolkit стоит, наверное, у каждого
красноглазого гентушнега!... =)))

На многих машинах ДО я никогда не ставил ни app-portage/gentoolkit-0.2.2 ни gentoolkit (просто несколько машин работают в качестве роутера и gentoolkit там ни к чемму), но elf файл run-parts "автоматом" подтягивался, и видимо из vixie-cron.

Ыыыых!

В третий раз! http://gentoo.ru/node/13160#comment-90969 =)))

.

покажите equery belongs /bin/run-parts

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".