stdout и stderr сценария не становятся перенаправленными при выполнении кроном

./сценарий и>> log.txt

Я получаю хороший файл журнала, но если мне выполнил ту же команду крон, позволяет, говорят, что crontab похож на это:

* * * * * '/home/user/script &>> /home/user/log.txt'

log.txt просто будет пуст, я попробовал "и 'и' и никакие галочки для включения команды, какая-либо идея, почему потоки не будут записаны в файл?

3
задан 29.03.2010, 00:17

2 ответа

Возможности состоят в том, что оболочка, что использование крона не поддерживает краткий оператор перенаправления &>> тот Bash поддержки.

Необходимо использовать портативную форму, которая поддерживается в Оболочке Bourne и других:

* * * * * /home/user/script >> /home/user/log.txt 2>&1

Это говорит, "добавляют стандартный вывод (дескриптор файла 1) в файл и отправляют стандартную погрешность (дескриптор файла 2) к тому же месту".

И Вам не нужны никакие кавычки.

6
ответ дан 07.12.2019, 23:29
  1. Не включайте кавычки для команды в crontab.

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

По моему опыту, чем меньше существует в crontab файле, тем лучше. Мои crontab файлы состоят из средств управления времени плюс простое абсолютное название команды (ksh) и команды, которую оно должно выполнить:

#   @(#)$Id: crontab,v 4.2 2007/09/17 02:41:00 jleffler Exp $
#   Crontab file for Home Directory for Jonathan Leffler (JL)
#-----------------------------------------------------------------------------
#Min     Hour    Day     Month   Weekday Command
#-----------------------------------------------------------------------------
0        *       *       *       *       /usr/bin/ksh /work1/jleffler/bin/Cron/hourly
1        1       *       *       *       /usr/bin/ksh /work1/jleffler/bin/Cron/daily
23       1       *       *       1-5     /usr/bin/ksh /work1/jleffler/bin/Cron/weekday
2        3       *       *       0       /usr/bin/ksh /work1/jleffler/bin/Cron/weekly
21       3       1       *       *       /usr/bin/ksh /work1/jleffler/bin/Cron/monthly
1
ответ дан 07.12.2019, 23:29

Теги

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