Додавання файлу до /etc/cron.d не змушує його працювати (ubuntu 10.04)


20

Якщо я скапую файл cron в /etc/cron.d, він не запускається, якщо я не редагую файл і не зміню команду. Тоді crond ніби забирає файл cron.

Як я можу змусити cron перезавантажити свої файли cron в ubuntu 10.04? "дотик" до файлу не працює, а також "перезапустити cron" або "reload cron".

Мій файл cron встановлюється, щоб він працював щохвилини і входив у файл. Нічого не закінчується у файлі журналу, поки я не редагую команду, і для неї немає запису в / var / log / syslog

Я тупаю.

Ось мій файл cron, збережений у /etc/cron.d/runscript (зауважте, він закінчується новим рядком)

# Runs the script every minute. This is safe because it will exit with success if it's already running
* * * * * www-data if [ -f /usr/local/bin/thing ]; then exec /usr/bin/php /usr/local/bin/thing mode:prod -a 14 -d >> /var/log/thing/mything.log 2>&1; else echo `date +'[\%D \%T]'` "Thing not deployed. Command not run" >> /var/log/thing/mything.log; fi &

3
Добре, що ви включили користувача, щоб виконати завдання як. Я залишив це, що було причиною моїх неприємностей.
Едвард Андерсон

1
Через роки не прийнято відповіді? Ви змусили його працювати? Я теж застряг, і загальні підводні камені не здаються проблемою.
twigmac

Відповіді:


27

Я щойно зіткнувся з цією проблемою, і хоча вона не відповість на ваш конкретний випадок, вона, можливо, допоможе іншим людям поглибити ту саму проблему, оскільки це питання дає дуже високі результати.

Я зберег файл у /etc/cron.d і його проігнорували. У моєму випадку це було тому, що я дав файлам розширення.

mytask.cronне працював, але я перейменував його на mytaskце, і він працював чудово.

Будь-які файли з розширеннями ігноруються, тому переконайтеся, що файл, який ви зберігаєте, не має жодного розширення.


13
Сторінка посібника cron (8) на Debian / Ubuntu в ці дні досить чітко документує: "Підтримка /etc/cron.d включена в самий демон cron [...] Файли в цьому каталозі [...] повинні відповідати до тієї ж конвенції про іменування, яку використовують у пробіжних частинах (8): вони повинні складатися виключно з великих і малих літер, цифр, підкреслень та дефісів. Це означає, що вони не можуть містити жодних крапок ".
Йосип Родін

15

Перевірте, чи закінчується файл, який ви копіюєте \n. Записи на crontabs, які не мають \nкінця, зазвичай стикаються з проблемами. Найпростіший спосіб забезпечити це - проставити порожній рядок після останнього запису.


1
Я ось-ось збирався редагувати своє запитання, щоб сказати, що це закінчується \ n
тому

1
Debian / Ubuntu cron попереджає про це в syslog, оскільки 3.0pl1-110 вийшов у 2010 році, пор. запис змін: "Увійдіть у клітковини пропущеного нового рядка перед EOF до syslog. Це стосується лише crontabs, не встановлених через crontab (1), тобто. /etc/cron.d/* та / etc / crontab. Закриває: # 76625"
Josip Родін
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.