Что случилось с моей конфигурацией cron.hourly?

Каждый час я получаю сообщение с такой ошибкой,

Subject: Cron <root@supa> root cd / && run-parts --report /etc/cron.hourly /bin/sh: root: not found

Содержимое / etc / crontab выглядит следующим образом: либо я удаляю пользователя «root», либо нет (6-й столбец), я получаю ту же ошибку.

SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # m h dom mon dow user command 11 * * * * root cd / && run-parts --report /etc/cron.hourly 25 6 * * * test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) 47 6 * * 7 test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ) 52 6 1 * * test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly ) #

В моем каталоге cron.hourly есть два файла:

$ ll /etc/cron.hourly/ total 0 lrwxrwxrwx 1 root root 25 2009-10-29 09:24 ntpsync -> /home/<user>/bin/ntpsync lrwxrwxrwx 1 root root 28 2009-10-23 10:33 foo -> /home/<user>/bin/foo

Первый скрипт читается следующим образом:

$ cat ~/bin/ntpsync #!/usr/bin/env bash echo "user: $USER" if [[ "$USER" == "root" ]] ; then ntpdate ntp.ubuntu.com else sudo ntpdate ntp.ubuntu.com fi

Даже я удаляю оба сценария в моем каталоге /etc/cron.hourly/, я все равно получаю одинаковое сообщение об ошибке каждый час. Я попытался перезапустить cron, и я все равно получаю то же сообщение об ошибке. Следующая идея: перезагрузиться, но я бы этого избежал.

$ sudo /etc/init.d/cron restart

Моя версия Ubuntu выглядит следующим образом:

$ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=8.04 DISTRIB_CODENAME=hardy DISTRIB_DESCRIPTION="Ubuntu 8.04.1"

Обновление: я удалил 6-й столбцы " root "из моего файла / etc / crontab раньше, потому что, когда я искал в Интернете кого-то упомянутого, это могло бы устранить проблему. Теперь я думаю, что проблема заключалась в том, что я возился с конфигурацией crontab системы, а не с корневым.

$ sudo crontab -l # m h dom mon dow command 17 * * * * root cd / && run-parts --report /etc/cron.hourly 25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) 47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ) 52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
6
задан 26 August 2010 в 04:55

45 ответов

Сделайте это:

  # crontab -r  

И НЕ делайте этого:

  # crontab /  etc / crontab  

Вместо этого вручную редактирует файл / etc / crontab .

0
ответ дан 6 August 2018 в 04:36

Я знаю, что вы сказали, что все еще получаете ошибки после удаления «root» в шестом столбце, но это действительно похоже на проблему.

Например, посмотрите на другие строки. Все они начинаются с «теста». Это не пользователь, это начало команды. Удаление «root» приведет к тому, что ваша команда начнется с «cd».

Тем более, что в сообщении об ошибке говорится, что он не может найти «root», который является ошибкой, которую вы получаете при попытке запустить программу, которая не существует.

Итак, я бы попробовал снова удалить это.

1
ответ дан 6 August 2018 в 04:36

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


Вы можете удалить файл crontab для поддельного пользователя, запустив sudo crontab -r


Как только это будет завершено, вы 'll нужно добавить пользователя root в файл / etc / crontab для каждой строки после часовой строки cron - так:

  SHELL = / bin / sh  PATH = / usr / local / sbin: / usr / local / bin: / sbin: / bin: / usr / sbin: / usr / bin # mh dom mon dow пользовательская команда 11 * * * * root cd / & amp; & amp; & amp; & amp; & amp;  run-parts --report /etc/cron.hourly 25 6 * * * Корневой тест -x / usr / sbin / anacron ||  (cd / & amp; & amp; run-parts --report /etc/cron.daily) 47 6 * * 7 тест корня -x / usr / sbin / anacron ||  (cd / & amp; & amp; run-parts --report /etc/cron.weekly) 52 6 1 * * Корневой тест -x / usr / sbin / anacron ||  (cd / & amp; & amp; run-parts --report /etc/cron.monthly) #  

Это должно решить эти проблемы электронной почты.

1
ответ дан 6 August 2018 в 04:36

Я знаю, что вы сказали, что все еще получаете ошибки после удаления «root» в шестом столбце, но это действительно похоже на проблему.

Например, посмотрите на другие строки. Все они начинаются с «теста». Это не пользователь, это начало команды. Удаление «root» приведет к тому, что ваша команда начнется с «cd».

Тем более, что в сообщении об ошибке говорится, что он не может найти «root», который является ошибкой, которую вы получаете при попытке запустить программу, которая не существует.

Итак, я бы попробовал снова удалить это.

1
ответ дан 7 August 2018 в 22:46

Сделайте это:

  # crontab -r  

И НЕ делайте этого:

  # crontab /  etc / crontab  

Вместо этого вручную редактирует файл / etc / crontab .

0
ответ дан 7 August 2018 в 22:46

Ваш / etc / crontab выглядит смешно. Каждая строка должна фактически иметь пользовательский столбец, что является самой смешной частью. Например, мои записи:

  # / etc / crontab: общесистемный crontab # В отличие от любого другого crontab вам не нужно запускать команду `crontab '# для установки новой версии, когда  вы редактируете этот файл # и файлы в файле /etc/cron.d.  Эти файлы также имеют поля имени пользователя, #, которые ни один из других crontabs не делает.  SHELL = / bin / sh PATH = / usr / local / sbin: / usr / local / bin: / sbin: / bin: / usr / sbin: / usr / bin # mh dom mon dow пользовательская команда 17 * * * * root  cd / & amp; & amp;  run-parts --report /etc/cron.hourly 25 6 * * * Корневой тест -x / usr / sbin / anacron ||  (cd / & amp; & amp; run-parts --report /etc/cron.daily) 47 6 * * 7 тест корня -x / usr / sbin / anacron ||  (cd / & amp; & amp; run-parts --report /etc/cron.weekly) 52 6 1 * * Корневой тест -x / usr / sbin / anacron ||  (cd / & amp; & amp; run-parts --report /etc/cron.monthly) #  

Кстати, обычно не рекомендуется касаться этого файла. Если вам нужно добавить более общие crontabs, используйте для этого /etc/cron.d . Вы можете попробовать восстановить конфигурацию по умолчанию для пакета cron с помощью:

  $ sudo apt-get install --reinstall --yes -o DPkg :: Options :: = - force-confmiss  -o DPkg :: Options :: = - force-confnew cron  

и посмотреть, исправляет ли он проблему.

1
ответ дан 7 August 2018 в 22:46

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


Вы можете удалить файл crontab для поддельного пользователя, запустив sudo crontab -r


Как только это будет завершено, вы 'll нужно добавить пользователя root в файл / etc / crontab для каждой строки после часовой строки cron - так:

  SHELL = / bin / sh  PATH = / usr / local / sbin: / usr / local / bin: / sbin: / bin: / usr / sbin: / usr / bin # mh dom mon dow пользовательская команда 11 * * * * root cd / & amp; & amp; & amp; & amp; & amp;  run-parts --report /etc/cron.hourly 25 6 * * * Корневой тест -x / usr / sbin / anacron ||  (cd / & amp; & amp; run-parts --report /etc/cron.daily) 47 6 * * 7 тест корня -x / usr / sbin / anacron ||  (cd / & amp; & amp; run-parts --report /etc/cron.weekly) 52 6 1 * * Корневой тест -x / usr / sbin / anacron ||  (cd / & amp; & amp; run-parts --report /etc/cron.monthly) #  

Это должно решить эти проблемы электронной почты.

1
ответ дан 7 August 2018 в 22:46

Сделайте это:

  # crontab -r  

И НЕ делайте этого:

  # crontab /  etc / crontab  

Вместо этого вручную редактирует файл / etc / crontab .

0
ответ дан 10 August 2018 в 10:52

Ваш / etc / crontab выглядит смешно. Каждая строка должна фактически иметь пользовательский столбец, что является самой смешной частью. Например, мои записи:

  # / etc / crontab: общесистемный crontab # В отличие от любого другого crontab вам не нужно запускать команду `crontab '# для установки новой версии, когда  вы редактируете этот файл # и файлы в файле /etc/cron.d.  Эти файлы также имеют поля имени пользователя, #, которые ни один из других crontabs не делает.  SHELL = / bin / sh PATH = / usr / local / sbin: / usr / local / bin: / sbin: / bin: / usr / sbin: / usr / bin # mh dom mon dow пользовательская команда 17 * * * * root  cd / & amp; & amp;  run-parts --report /etc/cron.hourly 25 6 * * * Корневой тест -x / usr / sbin / anacron ||  (cd / & amp; & amp; run-parts --report /etc/cron.daily) 47 6 * * 7 тест корня -x / usr / sbin / anacron ||  (cd / & amp; & amp; run-parts --report /etc/cron.weekly) 52 6 1 * * Корневой тест -x / usr / sbin / anacron ||  (cd / & amp; & amp; run-parts --report /etc/cron.monthly) #  

Кстати, обычно не рекомендуется касаться этого файла. Если вам нужно добавить более общие crontabs, используйте для этого /etc/cron.d . Вы можете попробовать восстановить конфигурацию по умолчанию для пакета cron с помощью:

  $ sudo apt-get install --reinstall --yes -o DPkg :: Options :: = - force-confmiss  -o DPkg :: Options :: = - force-confnew cron  

и посмотреть, исправляет ли он проблему.

1
ответ дан 10 August 2018 в 10:52

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


Вы можете удалить файл crontab для поддельного пользователя, запустив sudo crontab -r


Как только это будет завершено, вы 'll нужно добавить пользователя root в файл / etc / crontab для каждой строки после часовой строки cron - так:

  SHELL = / bin / sh  PATH = / usr / local / sbin: / usr / local / bin: / sbin: / bin: / usr / sbin: / usr / bin # mh dom mon dow пользовательская команда 11 * * * * root cd / & amp; & amp; & amp; & amp; & amp;  run-parts --report /etc/cron.hourly 25 6 * * * Корневой тест -x / usr / sbin / anacron ||  (cd / & amp; & amp; run-parts --report /etc/cron.daily) 47 6 * * 7 тест корня -x / usr / sbin / anacron ||  (cd / & amp; & amp; run-parts --report /etc/cron.weekly) 52 6 1 * * Корневой тест -x / usr / sbin / anacron ||  (cd / & amp; & amp; run-parts --report /etc/cron.monthly) #  

Это должно решить эти проблемы электронной почты.

1
ответ дан 10 August 2018 в 10:52

Я знаю, что вы сказали, что все еще получаете ошибки после удаления «root» в шестом столбце, но это действительно похоже на проблему.

Например, посмотрите на другие строки. Все они начинаются с «теста». Это не пользователь, это начало команды. Удаление «root» приведет к тому, что ваша команда начнется с «cd».

Тем более, что в сообщении об ошибке говорится, что он не может найти «root», который является ошибкой, которую вы получаете при попытке запустить программу, которая не существует.

Итак, я бы попробовал снова удалить это.

1
ответ дан 10 August 2018 в 10:52

Ваш / etc / crontab выглядит смешно. Каждая строка должна фактически иметь пользовательский столбец, что является самой смешной частью. Например, мои записи:

  # / etc / crontab: общесистемный crontab # В отличие от любого другого crontab вам не нужно запускать команду `crontab '# для установки новой версии, когда  вы редактируете этот файл # и файлы в файле /etc/cron.d.  Эти файлы также имеют поля имени пользователя, #, которые ни один из других crontabs не делает.  SHELL = / bin / sh PATH = / usr / local / sbin: / usr / local / bin: / sbin: / bin: / usr / sbin: / usr / bin # mh dom mon dow пользовательская команда 17 * * * * root  cd / & amp; & amp;  run-parts --report /etc/cron.hourly 25 6 * * * Корневой тест -x / usr / sbin / anacron ||  (cd / & amp; & amp; run-parts --report /etc/cron.daily) 47 6 * * 7 тест корня -x / usr / sbin / anacron ||  (cd / & amp; & amp; run-parts --report /etc/cron.weekly) 52 6 1 * * Корневой тест -x / usr / sbin / anacron ||  (cd / & amp; & amp; run-parts --report /etc/cron.monthly) #  

Кстати, обычно не рекомендуется касаться этого файла. Если вам нужно добавить более общие crontabs, используйте для этого /etc/cron.d . Вы можете попробовать восстановить конфигурацию по умолчанию для пакета cron с помощью:

  $ sudo apt-get install --reinstall --yes -o DPkg :: Options :: = - force-confmiss  -o DPkg :: Options :: = - force-confnew cron  

и посмотреть, исправляет ли он проблему.

1
ответ дан 13 August 2018 в 17:26

Я знаю, что вы сказали, что все еще получаете ошибки после удаления «root» в шестом столбце, но это действительно похоже на проблему.

Например, посмотрите на другие строки. Все они начинаются с «теста». Это не пользователь, это начало команды. Удаление «root» приведет к тому, что ваша команда начнется с «cd».

Тем более, что в сообщении об ошибке говорится, что он не может найти «root», который является ошибкой, которую вы получаете при попытке запустить программу, которая не существует.

Итак, я бы попробовал снова удалить это.

1
ответ дан 13 August 2018 в 17:26
  • 1
    Согласовано. Кажется, это так. – ddeimeke 26 August 2010 в 01:36
  • 2
    Проблема в том, что его синтаксис правильный - , если он работает на самом деле cat / etc / crontab , первая строка права - остальные не. Но если он действительно смотрит на crontab -l , то этот шестой столбец неверен для первой строки. – Marco Ceppi♦ 26 August 2010 в 01:44
  • 3
    файл / etc / crontab и пользовательский crontab пользователей не имеют ничего общего с eachother. Команда crontab редактирует файл / var / spool / cron / crontabs / $ USER и не использует тот же формат! Для систем crontab (/ etc / crontab) необходим пользовательский параметр, но crontab пользователя всегда выполняется как пользователь, которому он принадлежит. – LassePoulsen 26 August 2010 в 02:19
  • 4
    @Source Lab точно - вот почему мне любопытно, возможно ли OP смешивать два формата вверх. – Marco Ceppi♦ 26 August 2010 в 02:27
  • 5
    Тема письма дает понять, что это часовая строка, которая является источником проблемы. – ℝaphink 26 August 2010 в 02:30

Сделайте это:

  # crontab -r  

И НЕ делайте этого:

  # crontab /  etc / crontab  

Вместо этого вручную редактирует файл / etc / crontab .

0
ответ дан 13 August 2018 в 17:26

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


Вы можете удалить файл crontab для поддельного пользователя, запустив sudo crontab -r


Как только это будет завершено, вы 'll нужно добавить пользователя root в файл / etc / crontab для каждой строки после часовой строки cron - так:

  SHELL = / bin / sh  PATH = / usr / local / sbin: / usr / local / bin: / sbin: / bin: / usr / sbin: / usr / bin # mh dom mon dow пользовательская команда 11 * * * * root cd / & amp; & amp; & amp; & amp; & amp;  run-parts --report /etc/cron.hourly 25 6 * * * Корневой тест -x / usr / sbin / anacron ||  (cd / & amp; & amp; run-parts --report /etc/cron.daily) 47 6 * * 7 тест корня -x / usr / sbin / anacron ||  (cd / & amp; & amp; run-parts --report /etc/cron.weekly) 52 6 1 * * Корневой тест -x / usr / sbin / anacron ||  (cd / & amp; & amp; run-parts --report /etc/cron.monthly) #  

Это должно решить эти проблемы электронной почты.

1
ответ дан 13 August 2018 в 17:26

Другие вопросы по тегам:

Похожие вопросы: