Я настроил пользовательский файл crontab следующим образом:
*/2 * * * * /Users/[my user]/Dropbox/htdocs/auto-update.sh
Но это не будет выполнено. Я ждал минут 10-15. Почему?
Команда auto-update.sh запускается легко, если выполняется вручную. Как я могу разорвать цепочку выполнения и запустить мой скрипт из cron?
KeepAlive
иQueueDirectories
элементы).Ответы:
Среда, в которой выполняется задание cron, несколько отличается от интерактивной оболочки; скорее всего, скрипт работает, но не успешно. Одно из самых больших отличий заключается в том, что для заданий cron значение PATH по умолчанию просто "/ usr / bin: / bin", поэтому, если вы используете какие-либо команды, которых нет в / usr / bin или / bin, они не будут найдено, если ваш сценарий не устанавливает собственный PATH или не предоставляет явные пути к командам. Другое большое отличие состоит в том, что он просто не подключен к интерактивному сеансу, поэтому, если он попытается сделать что-то интерактивное (чтение из терминала и т. Д.), Это приведет к сбою. Попробуйте изменить запись cron на:
... и посмотрим, появится ли в журнале что-нибудь информативное.
источник
ps -ax | grep [c]ron
и посмотрел, есть ли в нем список запущенного демона cron (/ usr / sbin / cron). Если это так, попробуйте bmike's logger test. В любом случае, проверьте журналы (/var/log/system.log и пункт «Все сообщения» в утилите Console) и посмотрите, есть ли что-нибудь подходящее.Трудно сказать, но что, если вы добавили вторую задачу cron для выполнения каждые 5 минут или около того, и она вызывала какой-то системный инструмент, который записывает сообщения в system.log?
Таким образом, вы будете знать, что cron работает для данного пользователя и может сосредоточиться либо на запуске cron, либо на исправлении вашего скрипта, чтобы он работал в ограниченной среде cron. (Вы можете посмотреть на настенные часы и выбрать несколько раз, которые появятся в ближайшее время или даже в следующие несколько минут - например, для редактирования в 12:34 введите 35,36,37,38 минут для запуска и сохранения файла cron .)
источник
Уже давно вы задавали этот вопрос, но, похоже, в этой теме не найдено никакого решения.
В зависимости от способа создания пользовательского crontab может потребоваться выполнить его после редактирования:
Чтобы узнать, активирован ли новый crontab (также после его изменения), проверьте с помощью:
источник
У меня такая же проблема. Вам необходимо добавить путь к вашему bash-скрипту:
источник
У меня такая же проблема. Он исчез после того, как я добавил новую строку после моей работы в моем файле crontab (я всего лишь crontab n00b, поэтому я не знаю, широко ли это поведение известно или нет).
источник