[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: cron не запускает задания



Nick Potemkin wrote:
> On Tue, Nov 19, 2002 at 09:45:33PM +0600, Ilya Palagin wrote:
>
>
>>В общем, выяснилось следующее: cron _не создает_ файл командой touch, но
>>timestamp этого файла обновляет (если он уже существует), причем
>>в первом случае нет никакого упоминания о запуске команды в логе.
>>Вероятно, это следствие того, что cron работает в restricted shell?
>>Или это как-то по-другому надо понимать?
>
>
> Надо понимать по-другому. Такого быть не должно - у меня по крайней
> мере все ок. На 3.0. Запись в логе быть обязана. Если ее нет - значит
> крон не подхватил задание. Проверяй еще раз :) Пермишны и время очистки
> /tmp в том числе.
>
Да нет, для домашнего каталога тоже не работает. Вот так выглядит лог:
Nov 20 01:33:23 fax crontab[331]: (hyladm) BEGIN EDIT (hyladm)
Nov 20 01:33:28 fax crontab[331]: (hyladm) REPLACE (hyladm)
Nov 20 01:33:28 fax crontab[331]: (hyladm) END EDIT (hyladm)
Nov 20 01:33:58 fax crontab[334]: (hyladm) BEGIN EDIT (hyladm)
Nov 20 01:34:00 fax crontab[334]: (hyladm) END EDIT (hyladm)
Nov 20 01:34:01 fax /usr/sbin/cron[275]: (hyladm) RELOAD (crontabs/hyladm)
Nov 20 01:34:28 fax crontab[339]: (hyladm) BEGIN EDIT (hyladm)
Nov 20 01:34:33 fax crontab[339]: (hyladm) REPLACE (hyladm)
Nov 20 01:34:33 fax crontab[339]: (hyladm) END EDIT (hyladm)
Nov 20 01:35:01 fax /usr/sbin/cron[275]: (hyladm) RELOAD (crontabs/hyladm)
Nov 20 01:35:32 fax crontab[342]: (hyladm) LIST (hyladm)
В перерывах между редактированиями должно было происходить
выполнение заданий пользователя hyladm, но увы :-(  Если для
рута работает хотя бы обновление timestamp, то для обычного аккаунта
вообще ничего, ни одна команда.

Система установлена по-минимуму, т.к. используется в кач-ве
факс-сервера (hylafax). Единственное изменение системы по умолчанию -
замена exim-а на postfix.  Может, это что-то сломало? Но apt-get check
ни о каких ошибках не сообщает.  Кроме того, я ставил ядро 2.4,
при установке Debian сообщил о возможных проблемах с линкером.

вот что говорит strace для cron из-под root (команда при этом не выполняется):

309   time(NULL)                        = 1037736601
309   stat64("crontabs", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
309   stat64("/etc/crontab", {st_mode=S_IFREG|0644, st_size=596, ...}) = 0
309   stat64("/etc/cron.d", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
309 stat64("/etc/cron.d/exim", {st_mode=S_IFREG|0644, st_size=192, ...}) = 0
309   open("/etc/crontab", O_RDONLY)    = 4
309   fstat64(4, {st_mode=S_IFREG|0644, st_size=596, ...}) = 0
309   close(4)                          = 0
309   open("/etc/cron.d", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 4
309   fstat64(4, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
309   fcntl64(4, F_SETFD, FD_CLOEXEC)   = 0
309   getdents64(0x4, 0x8051d00, 0x1000, 0x9) = 72
309   open("/etc/cron.d/exim", O_RDONLY) = 5
309   fstat64(5, {st_mode=S_IFREG|0644, st_size=192, ...}) = 0
309   close(5)                          = 0
309   getdents64(0x4, 0x8051d00, 0x1000, 0x9) = 0
309   close(4)                          = 0
309   open("crontabs", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 4
309   fstat64(4, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
309   fcntl64(4, F_SETFD, FD_CLOEXEC)   = 0
309   getdents64(0x4, 0x8051d00, 0x1000, 0x9) = 104
309   open("/etc/passwd", O_RDONLY)     = 5
309   fcntl64(5, F_GETFD)               = 0
309   fcntl64(5, F_SETFD, FD_CLOEXEC)   = 0
309   fstat64(5, {st_mode=S_IFREG|0644, st_size=1103, ...}) = 0
309 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40015000
309   _llseek(5, 0, [0], SEEK_CUR)      = 0
309   read(5, "root:x:0:0:root:/root:/bin/bash\n"..., 4096) = 1103
309   close(5)                          = 0
309   munmap(0x40015000, 4096)          = 0
309   open("crontabs/hyladm", O_RDONLY) = 5
309   fstat64(5, {st_mode=S_IFREG|0600, st_size=247, ...}) = 0
309   close(5)                          = 0
309   open("/etc/passwd", O_RDONLY)     = 5
309   fcntl64(5, F_GETFD)               = 0
309   fcntl64(5, F_SETFD, FD_CLOEXEC)   = 0
309   fstat64(5, {st_mode=S_IFREG|0644, st_size=1103, ...}) = 0
309 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40015000
309   _llseek(5, 0, [0], SEEK_CUR)      = 0
309   read(5, "root:x:0:0:root:/root:/bin/bash\n"..., 4096) = 1103
309   close(5)                          = 0
309   munmap(0x40015000, 4096)          = 0
309   open("crontabs/root", O_RDONLY)   = 5
309   fstat64(5, {st_mode=S_IFREG|0600, st_size=241, ...}) = 0
309   getpid()                          = 309
309   time([1037736601])                = 1037736601
309   getpid()                          = 309
309   rt_sigaction(SIGPIPE, {0x400ebf28, [], 0x4000000}, {SIG_DFL}, 8) = 0
309   socket(PF_UNIX, SOCK_DGRAM, 0)    = 6
309   fcntl64(6, F_SETFD, FD_CLOEXEC)   = 0
309   connect(6, {sin_family=AF_UNIX, path="/dev/log"}, 16) = 0
309   send(6, "<78>Nov 20 02:10:01 cron[309]: ("..., 60, 0) = 60
309   rt_sigaction(SIGPIPE, {SIG_DFL}, NULL, 8) = 0
309   close(6)                          = 0
309   fcntl64(5, F_GETFL)               = 0 (flags O_RDONLY)
309   fstat64(5, {st_mode=S_IFREG|0600, st_size=241, ...}) = 0
309 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40015000
309   _llseek(5, 0, [0], SEEK_CUR)      = 0
309   read(5, "# DO NOT EDIT THIS FILE - edit t"..., 4096) = 241
309   _llseek(5, 241, [241], SEEK_SET)  = 0
309   read(5, "", 4096)                 = 0
309   read(5, "", 4096)                 = 0
309   close(5)                          = 0
309   munmap(0x40015000, 4096)          = 0
309   close(5)                          = -1 EBADF (Bad file descriptor)
309   getdents64(0x4, 0x8051d00, 0x1000, 0x9) = 0
309   close(4)                          = 0
309   time(NULL)                        = 1037736601
309   rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
309 rt_sigaction(SIGCHLD, NULL, {0x804a0a8, [CHLD], SA_RESTART|0x4000000}, 8) = 0
309   rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
309   nanosleep({60, 0}, {60, 0})       = 0

Блин, ни с одним дистрибутивом такого гемора не было, да еще в таких мелочах! Решил внедрить самый правильный из линуксов, а оказалось - поимел глюкодром :-(



Reply to: