Команда із символами відсотків, які не працюють у 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.