Команда із символами відсотків, які не працюють у crontab


11

Наступний кронтаб не працює:

# TEST LINE DOES DOT RUN
*/1 * * * * /bin/echo 'test '`/bin/date +%Y-%m-%d` >> /tmp/test

Я також спробував почати це з:

SHELL=/bin/bash

Оновлення: я подумав, що символи безнадійної зловмисності `були лиходіями, але оскільки відповідь нижче пояснює відсоток винуватця!


Ваш тестовий рядок працюватиме лише один раз на годину. Це може бути не те, що ви призначені для тестування.
— користувач535733

не перша хвилина? # mh dom mon
— dow

Ви маєте рацію .. Я змінив на * / 1, щоб змусити його працювати щохвилини. Крон працює нормально. З командами є щось. Здається, це/bin/date +%Y-%m-%d
— lpanebr

Відповіді:


13

У /bin/date +%Y-%m-%dкожному %з них потрібно уникнути \відповідно до цієї довідної сторінки :

Поле "шосте" (решта рядка) вказує команду, яку потрібно виконати. Вся командна частина рядка, до нового рядка або символу%, буде виконуватися в / bin / sh або оболонці, зазначеній у змінній SHELL cronfile. Знаки відсотків (%) у команді, якщо не уникнути зворотної косої риски (), будуть змінені в символи нового рядка, і всі дані після першого% будуть відправлені в команду як стандартне введення.


2
Спасибі! Я відредагую питання так, щоб воно відповідало реальній проблемі.
— lpanebr
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.