Пользовательский crontab не работает (FreeBSD)

Существует нет ungzip. У Вас мог бы быть a gunzip, и если Вы не делаете необходимо смочь gzip -d. Читать man gzip для деталей.

gzip дескрипторы единственные файлы только. Если Вы хотите заархивировать целые каталоги, использовать zip, или tar, или cpio (или...); или jar так как Вы, кажется, обрабатываете архивы Java.

1
24.11.2013, 19:24
3 ответа

Это, вероятно, потому что Ваш $PATH не установлен. Когда Вы пытаетесь выполниться php в Вашей оболочке, в действительности, это ищет абсолютное место назначения php от Вашего $PATH, который является списком каталогов, из которых можно определить местоположение исполняемых файлов. Это установлено в Вашей среде, но крон не совместно использует ту среду (на самом деле, это, вероятно, имеет пустое или сброс $PATH). Существует несколько решений (от лучше всего до худшего):

  • Набор $PATH в Вашем crontab путем добавления чего-то вроде этого к вершине его:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
  • Используйте полный путь для php исполняемый файл в сценарии (это плохо, пользователь, должен смочь переопределить ПУТЬ в среде для использования различных двоичных файлов, если они хотят);

  • Набор $PATH явно в Вашем сценарии (плохо по той же причине).

2
27.01.2020, 23:17
  • 1
    Спасибо за ответ. Теперь я имею: SHELL=/bin/sh PATH=/etc:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin */1 * * * * /home/username/data/www/run.sh Но ничто не изменилось.. –  Metalex 09.08.2013, 14:22
  • 2
    @Chris: так как Ваше 2-е решение "плохо", является спорным. Вы могли бы хотеть использовать определенную версию/установку php вместо того, обеспеченного $PATH. –  Ouki 09.08.2013, 16:49
  • 3
    @Ouki Это - точно причина, почему это плохо. –  Chris Down 09.08.2013, 17:02

Добавьте следующие строки на верхней части Вашего сценария оболочки как это

#!/bin/bash

PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin
export PATH

затем поместите использование задания крона

crontab -e
2
27.01.2020, 23:17
  • 1
    К сожалению, никакое усиление –  Metalex 11.08.2013, 15:09

Проблемы с crontab файлами имеют тенденцию быть связанными с другой средой, когда выполнено под кроном. Поскольку Вы не обеспечили файл run.sh, вот некоторые советы по устранению неисправностей:

  1. Как самостоятельно, ввести /home/username/data/www/run.sh на командной строке и удостоверяются, что она работает
  2. Удостоверьтесь, что все пути явно установлены как полные пути в Вашем сценарии
  3. Подтвердите добавление данных в корректном месте - crontab -e позволяет Вам отредактировать свой crontab файл
  4. Удостоверьтесь, что Вам разрешают использовать крон. Ваше имя пользователя должно быть в /var/cron/allow файл и не быть в /var/cron/deny файл
  5. Проверьте вывод/var/log/cron
1
27.01.2020, 23:17

Теги

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