Сценарий в cron не может найти команду

У меня есть скрипт, который выгружает базу данных и загружает файл SQL в Swift. Я столкнулся с проблемой, когда сценарий отлично работает в терминале, но не работает в cron.

Немного отладки, и я обнаружил, что команда /usr/local/bin/swift не найдена в скрипте.

Вот моя запись crontab:

 */2 * * * * . /etc/profile; bash /var/lib/postgresql/scripts/backup 

Вот что я пробовал:

  1. Использование полного пути для swift /usr/local/bin/swift
  2. Выполнение скрипта /etc/profile перед выполнением сценария bash.

Как я могу это решить?

2 Solutions collect form web for “Сценарий в cron не может найти команду”

Cron не работает с той же средой, что и пользователь. Если вы сделаете следующее, вы увидите, что я имею в виду:

введите env из приглашения на терминал и обратите внимание на результат.

Затем установите задание cron, подобное этому, и сравните его вывод с предыдущим:

 */5 * * * * env > ~/output.txt 

Вы обнаружите, что проблема, вероятно, crontab тем, что crontab не имеет той же PATH что и ваш пользователь. В качестве решения для этого вы можете (от своего пользователя postgres) выполнить echo $PATH а затем скопировать результаты этого в первую строку вашего crontab (что-то вроде этого)

 PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/jbutryn/.local/bin:/home/jbutryn/bin 

Или, если вы хотите быть более конкретным, вы можете просто добавить следующее:

 PATH=$PATH:/usr/local/bin 

Тем не менее, я обычно всегда ставил PATH моего пользователя в crontab, потому что я еще не слышал, что это не так, и вы, скорее всего, столкнетесь с этой проблемой, если этого не произойдет.

Вы сделали одну из самых распространенных ошибок cron . Если вы используете определенную среду, добавьте путь к $ PATH:

 # User specific environment and startup programs PATH=$PATH:$HOME/bin:/usr/sbin:/usr/bin:/script export PATH 

Также проверьте свой журнал cron (/ var / log / cron или / var / log / syslog). И проверьте разрешение пользователя на двоичные файлы.

  • Самый быстрый способ конвертировать большое количество FLAC в MP3-файлы
  • USB 3.0 камера распознается под живой загрузкой (попробуйте Ubuntu), но не с HDD
  • Нужно ли останавливаться, чтобы действительно отключить питание?
  • Увеличить ширину символов в оболочке сервера Ubuntu?
  • Одноранговое хранилище локальной сети
  • Как установить сальмоид красного смещения?
  • BTRFS восстанавливает моментальный снимок
  • Неверная переменная $ HOME env для вновь созданного пользователя
  • Откат всех пакетов apt-get до максимума, доступных под фактическим sources.list
  • Приложения, которые работают на Mono в Ubuntu
  • Запустите GraphicsMagick / ImageMagick на Ubuntu, предназначенный для Windows
  • Linux и Unix - лучшая ОС в мире.