@AlexMine
Учусь

Cron перестал работать на сервере, в чем может быть проблема?

Добрый день, cron перестал выполнять задания совсем. Решил попробовать создать занового файл и все прописать. Получился вот такой файл
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin/
# m h dom mon dow user  command

*  *    * * *   root    touch /root/home/1.txt
#

Для теста решил дать задание, чтобы он создавал файл в определенной папке, но ничего не происходит абсолютно, задание редактирую через команду sudo crontab -e. Если в ручную выполняю touch /root/home/1.txt, то файл создается.

Кто знает в чем может быть дело?
  • Вопрос задан
  • 3513 просмотров
Решения вопроса 2
zabudkin
@zabudkin
Инженер-системотехник, программист, админ, ТПУ!!!!
Видимо служба не запущена.

service cron status
что говорит?

/etc/init.d/cron status
что говорит?

Если ubuntu/debian, то:
sudo systemctl enable cron

чтобы всегда запускалась служба.

А запустить вручную:
service cron start
/etc/init.d/cron start

Если у Вас старые версии, то там может быть не cron, а crond
Ответ написан
smorman
@smorman
When In Rome do as The Romans do...
Часто очень, простое добавление в nano или др. редакторе команды расписания через:
sudo crontab -e
после сохранения Ctrl+O -> Enter, Ctrl+X, хоть и пишет, что задание модифицировано (добавлено), расписание не срабатывает.

Рекомендуется сделать перезапуск cron (crontab):

sudo /etc/init.d/cron restart

Почему sudo?

Если без него, т.е. задание писалось через crontab -e, файл ваше_имя_пользователя_в_системе пишется в:
/var/spool/cron/crontabs/ваше_имя_пользователя_в_системе

Если с sudo, т.е. задание писалось через sudo crontab -e, файл root пишется в:
/var/spool/cron/crontabs/root
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
fzfx
@fzfx
18,5 дм
выполните
export s="$(which touch)"; perl -i -pe 's/touch/$ENV{"s"}/' /etc/crontab

проверьте через минуту, сработал ли крон.
Ответ написан
@zersh
Укажите полный путь к команде touch
Ответ написан
Комментировать
@slalomjohn
В конце файла добавьте не менее 2-х пустых строк - это не бага, это фича.
Если в конце файла нет 2 пустых строк, то файл не будет выполняться.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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