[РЕШЕНО] Проблема с cron

Здравствуйте. Проблема следующая:

cron постоянно высылает ошибки по почте

/bin/bash: root: command not found

В логах это время следующее:

syslog написал(а):
cron[7590]: (root) CMD (test -x /usr/sbin/run-crons && /usr/sbin/run-crons )
cron[7591]: (root) CMD (root^Itest -x /usr/sbin/run-crons && /usr/sbin/run-crons )

crontab -l - стандартный (коментарии вырезал)

crontab -l написал(а):
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

59 * * * * root rm -f /var/spool/cron/lastrun/cron.hourly
9 3 * * * root rm -f /var/spool/cron/lastrun/cron.daily
19 4 * * 6 root rm -f /var/spool/cron/lastrun/cron.weekly
29 5 1 * * root rm -f /var/spool/cron/lastrun/cron.monthly
*/10 * * * * root test -x /usr/sbin/run-crons && /usr/sbin/run-crons

В какую сторону копать?

А cron, вообще, задания,

А cron, вообще, задания, помещённые в /etc/cron.{daily,hourly,monthly,weekly} выполняет?
Покажите

cat -v /etc/crontab
ls -l /usr/sbin/run-crons

Я Gentoo & Funtoo

Похоже, задания не

Похоже, задания не выполняются.

Цитата:
# cat -v /etc/crontab
# for vixie cron
# $Header: /var/cvsroot/gentoo-x86/sys-process/vixie-cron/files/crontab-3.0.1-r4,v 1.2 2009/05/12 09:13:46 bangert Exp $

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

# check scripts in cron.hourly, cron.daily, cron.weekly and cron.monthly
59 * * * * root rm -f /var/spool/cron/lastrun/cron.hourly
9 3 * * * root rm -f /var/spool/cron/lastrun/cron.daily
19 4 * * 6 root rm -f /var/spool/cron/lastrun/cron.weekly
29 5 1 * * root rm -f /var/spool/cron/lastrun/cron.monthly
*/10 * * * * root test -x /usr/sbin/run-crons && /usr/sbin/run-crons

# ls -l /usr/sbin/run-crons
-rwxr-xr-x 1 root root 2982 Apr 17 12:57 /usr/sbin/run-crons

Открыв файл на редактирование

Открыв файл на редактирование (хорошо это видно при использовании mcedit), убедитесь, что слово root в нём окружено [Tab]'ами:

# check scripts in cron.hourly, cron.daily, cron.weekly and cron.monthly
59  *  * * *<-->root<-->rm -f /var/spool/cron/lastrun/cron.hourly
9  3  * * *<--->root<-->rm -f /var/spool/cron/lastrun/cron.daily
19 4  * * 6<--->root<-->rm -f /var/spool/cron/lastrun/cron.weekly
29 5  1 * *<--->root<-->rm -f /var/spool/cron/lastrun/cron.monthly
*/10  *  * * *<>root<-->test -x /usr/sbin/run-crons && /usr/sbin/run-crons.

Я Gentoo & Funtoo

да, слово root

да, слово root окружено
tab'ами. И еще - это оригинальный файл, который поставляется с пакетом vixie-cron.

Вот еще немного логов:syslog

Вот еще немного логов:

syslog написал(а):
cron[8346]: (root) CMD (rm -f /var/spool/cron/lastrun/cron.hourly)
cron[8347]: (root) CMD (root^Irm -f /var/spool/cron/lastrun/cron.hourly)

После такого тоже письма с ошибкой валятся

а bash установлен???

а bash установлен???

естественно :-) # which

естественно :-)

# which bash
/bin/bash

Тогда ещё из области

Тогда ещё из области невероятных предположений — пользователь root есть и не переименован?
Покажите

emerge -pv vixie-cron

и

rc-status -a

Я Gentoo & Funtoo

Lupo Alberto

Lupo Alberto написал(а):
Тогда ещё из области невероятных предположений — пользователь root есть и не переименован?

Нет, если бы были какие-то нестандартные исходные данные - я бы об этом написал :-)

# emerge -pv vixie-cron

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R   ] sys-process/vixie-cron-4.1-r10  USE="pam -debug (-selinux)" 0 kB

Total: 1 package (1 reinstall), Size of downloads: 0 kB

# rc-status -a                                
Runlevel: boot                                         
 bootmisc                                                                                                                                                                     [ started  ]
 checkfs                                                                                                                                                                      [ started  ]
 checkroot                                                                                                                                                                    [ started  ]
 clock                                                                                                                                                                        [ started  ]
 consolefont                                                                                                                                                                  [ started  ]
 hostname                                                                                                                                                                     [ started  ]
 keymaps                                                                                                                                                                      [ started  ]
 localmount                                                                                                                                                                   [ started  ]
 modules                                                                                                                                                                      [ started  ]
 net.lo                                                                                                                                                                       [ started  ]
 ntp-client                                                                                                                                                                   [ started  ]
 rmnologin                                                                                                                                                                    [ started  ]
 smartd                                                                                                                                                                       [ started  ]
 syslog-ng                                                                                                                                                                    [ started  ]
 urandom                                                                                                                                                                      [ started  ]
Runlevel: default                                                                                                                                                                         
 acpid                                                                                                                                                                        [ started  ]
 apache2                                                                                                                                                                      [ started  ]
 cpufreqd                                                                                                                                                                     [ started  ]
 cpufrequtils                                                                                                                                                                 [ started  ]
 dovecot                                                                                                                                                                      [ started  ]
 lm_sensors                                                                                                                                                                   [ started  ]
 local                                                                                                                                                                        [ started  ]
 mysql                                                                                                                                                                        [ started  ]
 mysqlmanager                                                                                                                                                                 [ started  ]
 netmount                                                                                                                                                                     [ started  ]
 nfs                                                                                                                                                                          [ started  ]
 ntpd                                                                                                                                                                         [ started  ]
 postfix                                                                                                                                                                      [ started  ]
 proftpd                                                                                                                                                                      [ started  ]
 rtorrentd                                                                                                                                                                    [ started  ]
 sshd                                                                                                                                                                         [ started  ]
 udev-postmount                                                                                                                                                               [ started  ]
 vixie-cron                                                                                                                                                                   [ started  ]
Runlevel: nonetwork                                                                                                                                                                       
 local                                                                                                                                                                        [ started  ]
Runlevel: single                                                                                                                                                                          
Runlevel: UNASSIGNED
 crypto-loop                                                                                                                                                                  [ stopped  ]
 distccd                                                                                                                                                                      [ stopped  ]
 ejabberd                                                                                                                                                                     [ stopped  ]
 fancontrol                                                                                                                                                                   [ stopped  ]
 gpm                                                                                                                                                                          [ stopped  ] 
 net.eth0                                                                                                                                                                     [ started  ]
 nfsmount                                                                                                                                                                     [ stopped  ]
 nscd                                                                                                                                                                         [ stopped  ]
 numlock                                                                                                                                                                      [ stopped  ]
 portmap                                                                                                                                                                      [ started  ]
 pydoc-2.6                                                                                                                                                                    [ stopped  ]
 rpc.idmapd                                                                                                                                                                   [ stopped  ]
 rpc.pipefs                                                                                                                                                                   [ stopped  ]
 rpc.statd                                                                                                                                                                    [ started  ]
 rsyncd                                                                                                                                                                       [ stopped  ]
 svnserve                                                                                                                                                                     [ stopped  ]
 udev                                                                                                                                                                         [ stopped  ]
 udev-dev-tarball                                                                                                                                                             [ stopped  ]
 udev-mount

И заметил еще, что и на другой машине присутствует такая-же проблема (такая же ошибка в файле /root/dead.letter, т.к. нормального mta там нет)

А зачем вообще слово root в

А зачем вообще слово root в crontab'e?!
Например мой выглядит так:

# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.XXXXvxB3FB installed on Mon Apr 20 01:09:23 2009)
# (Cron version V5.0 -- $Id: crontab.c,v 1.12 2004/01/23 18:56:42 vixie Exp $)
10 0    * * *   /usr/lib/sa/sa1 600 6 &
0 1-22  * * *   /usr/lib/sa/sa1 600 6 &
0 23    * * *   /usr/lib/sa/sa1 600 6 &
#5 18   * * 1-5 /usr/lib/sa/sa2 -s 9:00 -e 18:01 -i 3600 -A &
* *     * * *   /usr/local/sbin/sensors.sh

А у вас root стоит на месте команды, а команды root нет :), о чем вам система честно предупреждает... RTFM, однако...

SysA написал(а): А у вас

SysA написал(а):
А у вас root стоит на месте команды, а команды root нет :), о чем вам система честно предупреждает... RTFM, однако...

Какой именно FM следует прочитать? Слово root в данном случае обозначает пользователя, от имени которого должна выполняться команда.

Я Gentoo & Funtoo

Lupo Alberto

Lupo Alberto написал(а):
SysA написал(а):
А у вас root стоит на месте команды, а команды root нет :), о чем вам система честно предупреждает... RTFM, однако...

Какой именно FM следует прочитать?
Слово root в данном случае обозначает пользователя, от имени которого должна выполняться команда.

Хотя бы man 5 crontab

Кстати, насчет имени сами придумали или озарение свыше? В принципе что такое root мы слышали и даже поняли, как ВЫ хотели это интерпретеровать. К сожалению Gentoo Linux имеет другое мнение на этот счет... :)

К сожалению, мне не хватает

К сожалению, мне не хватает знаний, чтобы придумать что-либо новое в Linux. Поэтому в своих ответах я руководствовался личным опытом и тем, что файл /etc/crontab поставляется в Gentoo именно в том виде, в котором я указывал и который прекрасно работает на нескольких моих компьютерах. Прежде, чем ответить топикстартеру, я посмотрел описание синтаксиса crontab в книге С. Скловской «Команды Linux. Второе издание, переработанное и дополненное», где на стр. 132 написано буквально следующее:

Цитата:
...
Строка файла crontab соответствует следующему формату (поля перечисляются в порядке следования, справа указан допустимый интервал значений):
минуты 0-59
часы 0-23, где 0 — это полночь
дни месяца 1-31
месяц 1-12
дни недели 0-7, где 1 — это понедельник (воскресенье ­— 0 или 7)
имя пользователя
команды
аргументы этих команд
...

P.S.man 5 crontab датирован 24 January 1994
P.S.S. Обидеть вас не хотел, не понравилась категоричность суждений.

Я Gentoo & Funtoo

Добавалю: в man 5 fcrontab

Пишется похожее:

man 5 fcrontab написал(а):
Note that the shell command may be preceded by a user name, which is equivalent to runas()...

man 5 crontab Секция EXAMPLE

man 5 crontab
Секция EXAMPLE SYSTEM CRON FILE

Я Gentoo & Funtoo

Lupo Alberto написал(а): man

Lupo Alberto написал(а):
man 5 crontab
Секция EXAMPLE SYSTEM CRON FILE

Как в том старом анекдоте: "...не путайте божий дар с яичницей..." - то что вы здесь показываете, относится к "system-wide crontab", который по "crontab -l" НЕ показывается! А у топик-стартера (перечитайте первый пост!) проблема именно с пользовательским crontab'ом, который он выводит именно по "crontab -l".

P.S. Рекомендую не забывать, что в различных *NIX'ах одни и те же системные команды работают по-разному, в чем, к своему сожалению, пришлось лично столкнуться (например, такие элементарные вещи, как cp/tar/sar/LVM в Linux/AIX/HP-UX). Поэтому надо руководствоваться мануалами именно той системы, с которой вы работаете, а остальные источники рассматривать не более чем "информация к размышлению"...

P.P.S. Во избежание возможных недоразумений, подчеркиваю, что ВСЕ мои посты здесь относятся к текущей версии Генту Линукс. ;)

Весьма вероятно, что вы

Весьма вероятно, что вы правы, тут только топикстартер может объяснить, какой именно файл он имел ввиду: общесистемный или пользовательский?

Я Gentoo & Funtoo

swan boot # crontab -l no

swan boot # crontab -l
no crontab for root

swan boot # cat /etc/crontab
# for vixie cron
# $Header: /var/cvsroot/gentoo-x86/sys-process/vixie-cron/files/crontab-3.0.1-r4,v 1.2 2009/05/12 09:13:46 bangert Exp $

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

# check scripts in cron.hourly, cron.daily, cron.weekly and cron.monthly
59  *  * * *    root    rm -f /var/spool/cron/lastrun/cron.hourly
9  3  * * *     root    rm -f /var/spool/cron/lastrun/cron.daily
19 4  * * 6     root    rm -f /var/spool/cron/lastrun/cron.weekly
29 5  1 * *     root    rm -f /var/spool/cron/lastrun/cron.monthly
*/10  *  * * *  root    test -x /usr/sbin/run-crons && /usr/sbin/run-crons

Так что у рута может быть пользовательский crontab, а если он пользовательский, то там имени пользователя быть не должно ) Хотя все бывает.
И кстати, в логе ругается на ^I что означает символ табуляции.

(Sir) * Windows looks like an open door, but no way to go *

Мда, матчасть по крону я не

Мда, матчасть по крону я не дочитал. Не был в курсе, что пользовательский кронтаб и общесистемный различаются, поэтому выполнил команду (на 2-х проблемных системах)
crontab /etc/crontab

handbook написал(а):
(Only if you have chosen dcron or fcron) # crontab /etc/crontab

- прочитал невнимательно и отложилось в памяти, что нужно это сделать :-)

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

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