Ответ 1
Вы должны вывести процентные знаки в вашем кронтабе:
* * * * * /some/path/test.sh >> $(date "+/home/oompah/logs/\%Y\%m\%d.test.log")
Знаки Percent (%
) имеют особое значение в crontabs. Они интерпретируются как символы новой строки.
Я пытаюсь получить 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)
Вы должны вывести процентные знаки в вашем кронтабе:
* * * * * /some/path/test.sh >> $(date "+/home/oompah/logs/\%Y\%m\%d.test.log")
Знаки Percent (%
) имеют особое значение в crontabs. Они интерпретируются как символы новой строки.
Поместите команду date внутри script. cron
не обязательно запускает оболочку, о которой вы думаете.
убедитесь, что у вас есть shebang #!/bin/bash
в качестве первой строки в script. Кроме того, как указано bmargulies
, поместите команду date
внутри script, если это возможно.