Я пытаюсь загрузить динамично созданный файл журнала от своего локального поля до моего 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
Какие-либо идеи, как успешно загрузить ежедневный журнал на мой сервер?
Я бы обычно указывал дату в задании cron - не заключать в кавычки полное имя и использовать обратные галочки в команде date, поэтому:
50 00 * * * curl -T ~/Desktop/logs/log`date +'\%m\%d\%y'` -u user:pass ftp://example.com/logs/
Хотя я и ожидал [ 111] синтаксис, чтобы работать так же.
(О, и я предполагаю, что амперсанд до y во втором задании cron - это опечатка в этом вопросе, но если это также относится к заданию cron, это будет проблемой.)