Подтвердить что ты не робот

/bin/sh: Ошибка синтаксиса: строка с неиспользуемой строкой

Я пытаюсь получить cronjob для вывода вывода в файл с датой в указанном местоположении (папке).

Моя запись crontab выглядит примерно так:

* * * * * /some/path/test.sh >> $(date "+/home/oompah/logs/%Y%m%d.test.log")

Я не понимаю, что когда я набираю эту команду на консоли, я получаю правильную строку:

echo $(date "+/home/oompah/logs/%Y%m%d.test.log")
/home/oompah/logs/20110329.test.log

Что вызывает эту ошибку и как ее исправить?

bash информация о версии:

GNU bash, версия 4.1.5 (1) -release (x86_64-pc-linux-gnu)

4b9b3361

Ответ 1

Вы должны вывести процентные знаки в вашем кронтабе:

* * * * * /some/path/test.sh >> $(date "+/home/oompah/logs/\%Y\%m\%d.test.log")

Знаки Percent (%) имеют особое значение в crontabs. Они интерпретируются как символы новой строки.

Ответ 2

Поместите команду date внутри script. cron не обязательно запускает оболочку, о которой вы думаете.

Ответ 3

убедитесь, что у вас есть shebang #!/bin/bash в качестве первой строки в script. Кроме того, как указано bmargulies, поместите команду date внутри script, если это возможно.