Используя завихрение с именем файла, содержащим динамическую дату

Я пытаюсь загрузить динамично созданный файл журнала от своего локального поля до моего FTP-сервера. Это все происходит в задании крона (crontab), я работаю каждую ночь. Это создает использование файла:

30 00 * * * touch ~/Desktop/logs/"log$(date +'\%m\%d\%y')"

Который работает просто великолепно. Однако, когда я пытаюсь загрузить файл с помощью того же синтаксиса:

50 00 * * * curl -T ~/Desktop/logs/"log$(date +'\%m\%d\&y')" -u user:pass ftp://example.com/logs/

Это дает мне следующую ошибку:

date: extra Operand

Я также попробовал его, не выходя из %:

curl -T ~/Desktop/logs/"log$(date +'%m%d%y')" -u user:pass ftp://example.com/logs/

То, которое работает в нормальной командной строке, но при выполнении через crontab, дает следующую ошибку:

/bin/sh: Syntax error: Unterminated quoted string

Какие-либо идеи, как успешно загрузить ежедневный журнал на мой сервер?

1
задан 19 October 2011 в 00:30

1 ответ

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

50 00 * * * curl -T ~/Desktop/logs/log`date +'\%m\%d\%y'` -u user:pass ftp://example.com/logs/

Хотя я и ожидал [ 111] синтаксис, чтобы работать так же.

(О, и я предполагаю, что амперсанд до y во втором задании cron - это опечатка в этом вопросе, но если это также относится к заданию cron, это будет проблемой.)

0
ответ дан 19 October 2011 в 00:30

Другие вопросы по тегам:

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