Робота Cron не працює?


24

У мене є файл crontab, який виглядає приблизно так:

* * * * * /home/abliskovs/update/update.sh

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

crontab -l виводить наступне:

* * * * * /home/abliskovs/update/update.sh


Гаразд, я це зробив.
Олексій Блісковський

Можливо, німе запитання, але це сталося зі мною раніше, тому я все-таки запитаю. Переконайтесь, що демон-крон насправді працює! : P Друга здогадка - це дозволи, переконайтеся, що виконується користувачем, який виконує cronjob.
Маттіас Анберг

Відповіді:


21

Додайте >> / tmp / testlog.log до кінця записи crontab (для перенаправлення виводу у файл, який ви можете дослідити або перевірити, чи працює він, додатково 2> & 1 включатиме вихід з консолі помилок)

Приклад

0 * * * * /home/abliskovs/update/update.sh 2> & 1 /tmp/testlog.log

Також переконайтесь у наступному:

  • Додайте кронштейни правильно. якщо ви використовували crontab -e у власному обліковому записі, сценарії виконуються разом із вашим користувачем (і, таким чином, запис crontab має на одне поле менше - користувач може запустити його, як це відомо). Якщо ви просто скопіювали ваше вище фрагмент у /etc/cron.d, це не вдасться, оскільки ви не вказали користувача (а точніше, оскільки він не знайде користувача з ім'ям "bash").
  • Переконайтеся, що файл сценарію виконується, інакше він не буде його виконувати.
  • Перезавантажте завдання cron sudo для перезавантаження служби або перезапустіть службу cronsudo /etc/init.d/cron restart

Як зробити файл виконуваним?

Кілька способів зробити свій файл виконуваним

chmod +x /home/abliskovs/update/update.sh 

chmod -R 0755 /home/abliskovs/update/update.sh

chmod a+x /home/abliskovs/update/update.sh

3

Переконайтеся, що файл сценарію виконується {chmod 755}, інакше він не буде його виконувати


2
Щоб зробити файл виконуваним, ви також можете запуститиchmod +x filename
Стефано Палацо

0

Сценарій оболонки, update.shймовірно, містить помилки, наприклад, деякі команди, які неможливо виконати, оскільки команду неможливо знайти. У цьому випадку це може допомогти додати шлях до вашої команди у змінній PATH або додати її безпосередньо перед вашою командою. Він також допомагає вказати адресу електронної пошти MAILTO, на цю адресу надсилаються електронні листи, отримані в результаті виконання Cronjobs

PATH=/path/to/your/command:/another/important/path
MAILTO=my_name@my_domain 

Ви також можете перевірити локальну поштову скриньку mailта файл syslog у /var/log/syslogпомилках. Дивіться також це пов’язане запитання, чому кройовки можуть не працювати .


0

У мене виникло те саме питання, і причиною для мене було те, що crontab не працював, оскільки на нього не було дозволу. Я змінив файл і помістив його в /tmpt/output.log

*/5 * * * * /usr/bin/php /home/ubuntu/app/artisan cmd:process-order > /tmp/queue.output

Дайте мені знати, чи працює це для вас.

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