URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 78343
[ Назад ]

Исходное сообщение
"/etc/crontab на работает"

Отправлено Александр , 21-Янв-08 13:43 
Доброго времени суток!
Много тем про cron, но свой случай я не нашел.

системный cron не выполняет задания (заметил не так давно, причину прекращения работы не нашел).

Итак:
Система: Fedora Core 6
crond запущен
# /etc/init.d/crond status
crond (pid 23031) выполняется...

# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
#

все стандартно

в логе только
Jan 21 11:39:29 email crond[23031]: (CRON) STARTUP (V5.0)
и потом после строчки старта долго ничего нет...
после редактирования (добавлял задание для проверки, потом убрал) пишет
Jan 21 11:11:01 email crond[32295]: (*system*) RELOAD (/etc/crontab)

и все... никаких команд CMD в логах нет,
пробовал переписывать файл полностью с нуля, копировал с заведомо рабочей машины, где крон работает, ремил все команды кроме добваленной тестовой строки (*/1 * * * * root /bin/echo test) - без изменений.

Судя по RELOAD конфигурацию он считывает, но не выполняет и не ругается :(
kill -HUP pid и /etc.init.d/crond restart после редактирования делал - не помогает.

Права в порядке, перевод после последней строки есть...
# ls -l /etc/crontab
-rw-r--r-- 1 root root 255 Янв 21 11:37 /etc/crontab

/etc/cron.allow отсутствует
/etc/cron.deny пустой
-rw-r--r-- 1 root root 0 Янв 11 09:54 /etc/cron.deny

команды вроде crontab -l относятся к пользователю root, но не к системному crontab.
как посмотреть задания системного crontab?


ХЕЕЕЕЛП ПЛИЗ!


Содержание

Сообщения в этом обсуждении
"/etc/crontab на работает"
Отправлено sergey.shkolin , 21-Янв-08 21:17 
выполни
crontab -u root /etc/crontab

и проверь добавились ли правила crontab -l


"/etc/crontab на работает"
Отправлено Александр , 22-Янв-08 09:12 
>выполни
>crontab -u root /etc/crontab
>
>и проверь добавились ли правила crontab -l

"-u root" можно не указывать если под рутом работаешь
т.е. crontab /etc/crontab и все. Сделал.
crontab -l листинг выводит:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly


Но вот что меня смущает, на такой же машине, с такой же Fedora Core 6 где крон замечательно пашет "crontab -l" говорит "no crontab for root"
и все run-parts выполняются как и положено.



"/etc/crontab на работает"
Отправлено angra , 22-Янв-08 00:57 
>команды вроде crontab -l относятся к пользователю root, но не к системному
>crontab.
>как посмотреть задания системного crontab?

Это вам не винда, нет всемогущего пользователя system. Из вашего поста непонятно что и куда вы добавляли и какой результат хотели получить. Понятное дело, что могу порекомендовать вдумчивое чтение манов, но может просто подробно опишете задачу и свои действия?



"/etc/crontab на работает"
Отправлено Александр , 22-Янв-08 09:34 
>>команды вроде crontab -l относятся к пользователю root, но не к системному
>>crontab.
>>как посмотреть задания системного crontab?
>
>Это вам не винда, нет всемогущего пользователя system. Из вашего поста непонятно
>что и куда вы добавляли и какой результат хотели получить. Понятное
>дело, что могу порекомендовать вдумчивое чтение манов, но может просто подробно
>опишете задачу и свои действия?

Добавлял я задания для диагностики, проверки работы крона. Почему при стандартном /etc/crontab задания перестали выполнятся совершенно не понятно :( А задача простая - восстановить выполнение задач по прасписанию.

Вот к примеру по совету sergey.shkolin я выполняю "crontab /etc/crontab"
Но сначала добавил строчку для диагностики (с переводом в конце)

*/1 * * * * root /bin/echo test

в логе
(root) REPLACE (root)
(root) LIST (root)
(*system*) RELOAD (/etc/crontab)

сделал kill -HUP cron_pid
жду...
никакого эффекта :(


"/etc/crontab на работает"
Отправлено DVI , 23-Янв-08 13:15 
проверь к примеру файлы в папке /etc/cron.daily, права должны быть на исполнение сделай chmod +x /etc/cron.daily/*



"/etc/crontab на работает"
Отправлено Александр , 23-Янв-08 14:17 
>проверь к примеру файлы в папке /etc/cron.daily, права должны быть на исполнение
>сделай chmod +x /etc/cron.daily/*

Во всех 4х папках /etc/cron.hourly /etc/cron.daily /etc/cron.weekly /etc/cron.monthly
все скрипты исполняемые.

# ls -l /etc/cron*
-rw-r--r-- 1 root root    0 Янв 11 09:54 /etc/cron.deny
-rw-r--r-- 1 root root  275 Янв 23 10:19 /etc/crontab
-rw-r--r-- 1 root root  345 Янв 15 09:29 /etc/crontab.bak

/etc/cron.d:
итого 8
-rw------- 1 root root 273 Янв 14 13:29 sa-update
-rw-r--r-- 1 root root 188 Авг 20 14:38 sysstat

/etc/cron.daily:
итого 52
-rwxr-xr-x 1 root root  379 Окт 30  2006 0anacron
lrwxrwxrwx 1 root root   39 Мар  7  2007 0logwatch -> /usr/share/logwatch/scripts/logwatch.pl
-rwxrw-r-x 1 root root  118 Окт  5  2006 cups
-rwxr-xr-x 1 root root  418 Июл 13  2006 makewhatis.cron
-rwxr-xr-x 1 root root  137 Июл 13  2006 mlocate.cron
-rwxr-xr-x 1 root root 2181 Июн 21  2006 prelink
-rwxr-xr-x 1 root root  114 Сен  7  2006 rpm
lrwxrwxrwx 1 root root   19 Янв 18 17:47 spamreport -> /scripts/spamreport
lrwxrwxrwx 1 root root   30 Янв 18 17:48 tempdelete.pl -> /etc/webmin/cron/tempdelete.pl
-rwxr-xr-x 1 root root  290 Июл 13  2006 tmpwatch

/etc/cron.hourly:
итого 4
-rwxr-xr-x 1 root root 27 Янв 22 14:57 test

/etc/cron.monthly:
итого 12
-rwxr-xr-x 1 root root 381 Окт 30  2006 0anacron
-rwxr-xr-x 1 root root 181 Дек 29  2006 insure_arch

/etc/cron.weekly:
итого 24
-rwxr-xr-x 1 root root 380 Окт 30  2006 0anacron
lrwxrwxrwx 1 root root  22 Июн 15  2007 backup_config -> /scripts/backup_config
-rwxr-xr-x 1 root root 180 Фев  8  2007 logrotate
-rwxr-xr-x 1 root root 414 Июл 13  2006 makewhatis.cron
-rwxr-xr-x 1 root root 101 Дек 29  2006 rkhunter


Но как я писал выше, я ремил все эти run-parts и вписывал тестовую строчку и все равно не выполняется...
Вот к примеру попробовал поменять доступ (+х) на файлы в папке /etc/cron.d sysstat и sa-update и в логах ругань появилась

Jan 23 14:02:25 email crond[3320]: (*system*) BAD FILE MODE (/etc/cron.d/sysstat)
Jan 23 14:02:25 email crond[3320]: (*system*) BAD FILE MODE (/etc/cron.d/sa-update)

Т.е. на ошибки то он реагирует, а вот почему задания не выполняет не понятно...

Вопрос всем, а можно дебаг включить для крона?


"/etc/crontab на работает"
Отправлено DVI , 23-Янв-08 17:22 
Проверь правильное ли системное время, далее рестартани cron.



"/etc/crontab на работает"
Отправлено Александр , 23-Янв-08 17:33 
>Проверь правильное ли системное время, далее рестартани cron.

время синхронизируется по ntp


"/etc/crontab на работает"
Отправлено Александр , 24-Янв-08 09:13 
Други! Есть ли у кого еще умные мысли???
Почему он читает каждый раз конфигурацию после изменения, ни на что не ругается (хотя если специально где поменять права или что еще, то ругается) и при этом игнорирует любые команды в /etc/crontab ?

По совету sergey.shkolin и angra выполнил crontab /etc/crontab
Ну создался файлик /var/spool/cron/root с правами
-rw------- 1 root root 289 Янв 22 09:05 root
и содержимим идентичным /etc/crontab так он тоже игнорируется!


"/etc/crontab на работает"
Отправлено angra , 25-Янв-08 23:21 
Я вообще-то советовал читать man, а не делать все, что было сделано в этом топике. У меня создалось впечатление, что вы тестите его при помощи /usr/bin/echo test, скажите а что вы хотите увидеть в результате этого теста?

"/etc/crontab на работает"
Отправлено Александр , 29-Янв-08 10:19 
>Я вообще-то советовал читать man, а не делать все, что было сделано
>в этом топике. У меня создалось впечатление, что вы тестите его
>при помощи /usr/bin/echo test, скажите а что вы хотите увидеть в
>результате этого теста?

строчку в логе crond[13274]: (root) CMD (/usr/bin/echo test)
это будет значить, что он ее выполнил.

Я тут запустил crond с командной строчки в режиме debug
/usr/sbin/crond -x ext,sch,proc,pars,load,misc>/root/cron.debug
Много инфы туда свалилось, переменные читаются видно сразу, а вот что с расписанием не совсем понятно... вот к примеру часть

user [root:0:0:...] cmd="/bin/echo test"
user [root:0:0:...] cmd="run-parts /etc/cron.monthly"
user [root:0:0:...] cmd="run-parts /etc/cron.weekly"
user [root:0:0:...] cmd="run-parts /etc/cron.daily"
user [root:0:0:...] cmd="run-parts /etc/cron.hourly"
[27088] do_command(/bin/echo test, (*system*,0,0))
[27088] main process returning to work
[27088] sigchld...pid #27377 died, stat=0
[27088] sigchld...no children
[27088] Target time=1201597560, sec-to-wait=60

Вроде он как пытается ее выполнить, но в логе пусто...
Тут я снова подредактировал /etc/crontab (вставил решетку, просто чтобы конфиг перечитался)

[27088] load_database()
        *system*: [delete old data]load_user()
linenum=11
load_env, read <SHELL=/bin/bash>
load_env, <SHELL> </bin/bash> -> <SHELL=/bin/bash>
linenum=12
load_env, read <PATH=/sbin:/bin:/usr/sbin:/usr/bin>
load_env, <PATH> </sbin:/bin:/usr/sbin:/usr/bin> -> <PATH=/sbin:/bin:/usr/sbin:/usr/bin>
linenum=13
load_env, read <MAILTO=root>
load_env, <MAILTO> <root> -> <MAILTO=root>
linenum=14
load_env, read <HOME=/>
load_env, <HOME> </> -> <HOME=/>
linenum=15
linenum=16
load_env, read <01 * * * * root run-parts /etc/cron.hourly>
load_env, not an env var, state = 7
linenum=14
load_entry()...about to eat comments


"/etc/crontab на работает"
Отправлено angra , 29-Янв-08 10:47 
cron использует syslog и куда будут писаться сообщения и какие именно зависит от настроек syslog, не исключен вариант, что они просто отбрасываются или попадают в другой файл.  Если хотите проверить что он выполняет команды используйте что-либо оставляющее видимые результаты, например touch. Кстати рестартовать cron после изменений /etc/crontab или /etc/cron.d/ не надо, он сам с этим прекрасно справляется, что опять таки указано в мане.

"/etc/crontab на работает"
Отправлено Александр , 29-Янв-08 11:08 
>cron использует syslog и куда будут писаться сообщения и какие именно зависит
>от настроек syslog, не исключен вариант, что они просто отбрасываются или
>попадают в другой файл.  Если хотите проверить что он выполняет
>команды используйте что-либо оставляющее видимые результаты, например touch. Кстати рестартовать cron
>после изменений /etc/crontab или /etc/cron.d/ не надо, он сам с этим
>прекрасно справляется, что опять таки указано в мане.

Согласен, я попробовал перенаправить на мыло, но без результатов, попробую touch.
А перезапускал в основном еще и чтобы посмотреть что в лог хоть что то пишется.
Про логи: дефолтовый файл /var/log/messages там от крона тоже ничего нет...
Из syslog
# Log cron stuff
cron.*                                                  /var/log/cron
В данный лог должно валиться все от крона!

Думаю надо теперь двигаться в сторону анализа debug вывода...


"/etc/crontab на работает"
Отправлено Xtron , 01-Апр-08 03:51 
У меня возникала аналогичная проблема после загона сервера в домен Win2003
Оказалось, что я неправильно составил файлик /etc/security/access.conf
Я там запретил локальный вход всем кроме определенной группы пользователей,
в которую (root) не входит.


"/etc/crontab на работает"
Отправлено Александр , 01-Апр-08 09:12 
>У меня возникала аналогичная проблема после загона сервера в домен Win2003
>Оказалось, что я неправильно составил файлик /etc/security/access.conf
>Я там запретил локальный вход всем кроме определенной группы пользователей,
>в которую (root) не входит.

Жаль проверить уже не могу, переустановил все - помогло :))


"/etc/crontab на работает"
Отправлено ilrandir , 18-Ноя-08 13:45 
>>У меня возникала аналогичная проблема после загона сервера в домен Win2003
>>Оказалось, что я неправильно составил файлик /etc/security/access.conf
>>Я там запретил локальный вход всем кроме определенной группы пользователей,
>>в которую (root) не входит.
>
>Жаль проверить уже не могу, переустановил все - помогло :))

Аналогично долго не мог понять почему не выполняются команды добавленные в /etc/crontab, позднее создавал файлик в /etc/cron.d/, записывал туда команды - не выполнялось. При углублении в проблемму обнаружил что в логи валится "BAD FILE MODE". На эту тему нашел небольшую но содержательную инструкцию (http://slackrw.wordpress.com/2006/08/09/of-cron-and-permissions/):

/etc/crontab ——- 644
/etc/cron.d ——– 754
/etc/cron.d/* —— 644
/etc/cron.*ly ——- 750
/etc/cron.*ly/*—– 500

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


"/etc/crontab на работает"
Отправлено odity , 14-Окт-15 17:12 
Я нашел почему у меня kоманды в crontab -e -u root исполнялись,но выводили по логам, но ничего не выполняли)))) ребят,советую при проблемах сходить в туалет и поразмыслить))))) просто в /etc/crontab есть у вас переменная SHELL and PATH а я у себя еще и в crontab -e вписал эти переменным и еще их добавил своими путями) в итоге просто выкинул их от туда и оставил только в /etc/crontab и все!!!!!!)))))))))))))))))))0