Ваш $PATH
в порядке; оставить это в покое. В Ubuntu все команды, которые вы вызываете (touch
, chmod
, curl
), находятся в /bin
и / или /usr/bin
.
Как вы настроили работу cron? Вы запускали crontab some-file
как root?
Кажется, что /etc/crontab
- это обычный механизм запуска команд cron от имени root. В моей системе Ubuntu sudo crontab -l
говорит no crontab for root
. Запуск crontab
от имени пользователя root, как и для любой учетной записи без полномочий root, должен быть в порядке, но вы можете вместо этого использовать /etc/crontab
. Обратите внимание, что он использует другой синтаксис, чем обычный crontab, как объяснено в комментариях вверху /etc/crontab
:
$ head -5 /etc/crontab
# /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.
Выполнить sudo crontab -l
. Это показывает вашу команду?
Временно измените ваш сценарий, чтобы он всегда давал видимый вывод. Например, добавьте следующее сразу после #!/bin/sh
:
echo "Running scheduleSpider.sh at \`date\`" >> /tmp/scheduleSpider.sh.log
и посмотрите, что будет в /tmp/scheduleSpider.sh.log
через несколько минут. (Вы можете настроить запуск команды каждую минуту, чтобы вам не приходилось долго ждать результатов.) Если это сработает (должно быть), вы можете добавить больше команд echo
в ваш скрипт, чтобы детально увидеть, что он делает. .
Похоже, ваш скрипт предназначен для запуска только один раз; он создает файл sync.txt
, чтобы предотвратить его повторный запуск. Это может быть корнем (гм) вашей проблемы. Какое у тебя намерение? Вы хотели удалить sync.txt
после запуска команды и просто забыли это сделать?
Домашний каталог
root
в Ubuntu - /root
. При первом запуске вашего скрипта он должен создать /root/sync.txt
. Этот файл существует? Если да, то сколько лет?
Обратите внимание, что curl someLink
(при условии, что someLink
является действительным URL-адресом) будет просто выводить содержимое из указанной ссылки в стандартный вывод. Это было ваше намерение (оно будет отображаться по электронной почте на root
? Или вы просто не показывали нам всю команду?