Як я можу дізнатись, чи працює моя щогодинна робота?


26

Я створив файл з ім'ям ntpdateв/etc/cron.hourly

#!/bin/sh
/usr/sbin/ntpdate-debian
date > /tmp/william_tmp
date > /william_tmp
date > ~/william_tmp
echo test

Я також зробив Chmod 755 для цього файлу.

Однак я не можу сказати, запустився чи ні файл!

Файл не створено в жодному з 3-х каталогів.

Якщо я запускаю вручну, cd / && run-parts --report /etc/cron.hourlyто файли створюються, і я отримую відлуння.

Чи може хтось порекомендувати (в ідеалі крок за кроком!) Інструкції, щоб перевірити, чи працює він?

Відповіді:


25

Одним з головних підводів, що випливає з крона, є хрон, що працює в надзвичайно обмеженому середовищі оболонки, внаслідок чого багато змінних не експортуються в навколишнє середовище, в основному $ PATH. Переконайтеся , що ви використовуєте всі абсолютні шляхи до виконуваного файлу, включаючи загальні функції , такі як echo, uptime, dateі т.д. все повинні використовувати повні шляху ( /bin/echo, /bin/date, /usr/bin/uptime). Щоб визначити шлях до виконуваного файлу, ви можете скористатися whichкомандою так: which echo- це покаже вам повний шлях до цього інструменту.


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

36

Ви повинні заглянути у свій /var/log/syslogфайл журналу. Якщо крон запущений, він матиме такий рядок:

Jun 11 19:09:01 penguin CRON[17376]: (root) CMD (  [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib/php5/maxlifetime) ! -execdir fuser -s {} 2>/dev/null \; -delete)
Jun 11 19:17:01 penguin CRON[17799]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)

Поради щодо усунення несправностей див. На веб-сторінці https://help.ubuntu.com/community/CronHowto#Troubleshooting_and_Common_Problems


У Syslog немає нічого, і я не бачу жодної причини, чому це не вдалося б за цим посиланням :(
wilhil

1
Якщо в syslog ( grep -i cron /var/log/syslog /var/log/syslog.1) немає записів , почніть перевіряти, чи працює демон cron: ps uww -C cronповинен містити рядок з процесом.
Лекенштейн

Вибачте за те, що ввели в оману, у Cys в системному журналі є записки, просто нічого, що стосується цієї команди ... Я знаю, що деякі завдання запускаються як щогодини, я отримую нове повідомлення поштою ... AFAIK, які працюють від crontab, в cron.hourly немає нічого, що я намагаюся працювати
wilhil

2

Спробуйте змінити перший рядок сценарію (перекладача) на:

#!/bin/bash

У мене також були проблеми в минулому, із змінними середовища та проблемами PATH. Після зміни перекладача на bashмої питання вже не було.


1

Враховуючи, що я додав clearme.shсценарій у/etc/cron.hourly/

Просто фільтруйте завдання CRON у терміналі за допомогою потужної egrep та awk :

$ cat /var/log/syslog | egrep clearme | awk "{ print $1 }" > ~/Desktop/cronlog.txt

Вихід буде виглядати так:

Jan 14 15:20:01 markets-dev CRON[10089]: (dminca) CMD (root /etc/cron.hourly/clearme.sh)
Jan 14 15:40:01 markets-dev CRON[18042]: (dminca) CMD (root /etc/cron.hourly/clearme.sh)
Jan 14 16:00:01 markets-dev CRON[22817]: (dminca) CMD (root /etc/cron.hourly/clearme.sh)
Jan 14 16:20:01 markets-dev CRON[28183]: (dminca) CMD (root /etc/cron.hourly/clearme.sh)
Jan 14 16:40:01 markets-dev CRON[411]: (dminca) CMD (root /etc/cron.hourly/clearme.sh)
Jan 14 17:00:01 markets-dev CRON[5442]: (dminca) CMD (root /etc/cron.hourly/clearme.sh)
Jan 14 17:20:01 markets-dev CRON[11935]: (dminca) CMD (root /etc/cron.hourly/clearme.sh)

Щоб пояснити все покроково:

  1. cat / var / log / syslog - надрукуйте мені системний журнал
  2. egrep clearme - але вибирайте лише рядки, що містять текст clearme
  3. awk "{print $ 1}" - надрукуйте мені той рядок, який містить текст clearme
  4. > ~ / Desktop / cronlog.txt - виводить результати у файл cronlog.txt, розташований у каталозі Desktop .

4-й крок - необов’язковий. Він буде просто друкувати результати в терміналі замість файлу.

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