Во-первых, я уже просмотрел эту страницу , и ничего не помогло.
Мой скрипт создаст файл, так я узнаю, запущен он или нет. /var/log/syslog
не дает мне никакой отладочной информации. Ниже мой раздел crontab, ниже того, что уже есть по умолчанию:
SHELL=/bin/bash
# Check for minecraft server updates
* * * * * root minecraft_update > /tmp/cron.out
# TEST
* * * * * root env > /tmp/env.out
Примечание: в конце файла crontab есть пустая строка. Я указал оболочку bash, хотя это указано в моем скрипте. Мой скрипт (minecraft_update
) находится в каталоге /usr/local/bin
, и единственные другие команды, которые он вызывает, это grep
, ls
и head
, которые находятся в каталоге /bin
, который уже определен в crontab PATH.
Файл /tmp/cron.out
создан, но пуст. Файл /tmp/env.out
создан и подтверждает, что PATH включает в себя и каталоги /usr/local/bin
и /bin
, а также подтверждает SHELL=/bin/bash
.
Addtl. Пермь информация:
ll /etc/crontab
-rw-r--r-- 1 root root 998 Jul 1 12:47 /etc/crontab
ll /usr/local/bin/minecraft_update
-rwxr--r-- 1 root root 1132 Jul 1 12:31 minecraft_update*
Я так расстроен этим! Пожалуйста, положи конец моим * * * * * страданиям ... [Это запись cron, а не ненормативная лексика, кстати. Должен любить Linux юмор :))
Вам не нужен 'корень' в списке crontab, (если у Вас нет программы root
то, что Вы используете для запущения скрипта).
Если ypu редактируют Ваш crontab с sudo crontab -e
(/var/spool/cron/crontabs/root), затем Вам не нужно имя пользователя. Если Вы редактируете crontab в масштабе всей системы (/etc/crontab), то Вам действительно нужно перечисленное имя пользователя.
E.x.
sudo crontab -e
SHELL=/bin/bash
# Check for minecraft server updates
* * * * * minecraft_update > /tmp/cron.out
# TEST
* * * * * env > /tmp/env.out
ИЛИ nano /etc/crontab
SHELL=/bin/bash
# Check for minecraft server updates
* * * * * root minecraft_update > /tmp/cron.out
# TEST
* * * * * root env > /tmp/env.out