RTFM.WIKI

Ordnung muß sein. Ordnung über alles (18+)

Инструменты пользователя

Инструменты сайта


Stylesheet conf/userstyle.css not found, please contact the developer of "dokuwiki_2024" template.
linux:terminal:terminal_tnt_cron

Трюки в консоли: Cron

console

CRON (Command Run ON) - демон-планировщик задач в UNIX-подобных операционных системах, использующийся для периодического выполнения заданий в заданное время.

Памятка для себя.

# minute (0-59),
# |      hour (0-23),
# |      |       day of the month (1-31),
# |      |       |       month of the year (1-12),
# |      |       |       |       day of the week (0-6 with 0=Sunday).
# |      |       |       |       |       commands
  0      2       *       *       0,4     /root/bin/logchecker

string	   meaning
------	   -------
@reboot	   Run once, at startup.
@yearly	   Run once a year, "0 0 1 1 *".
@annually  (same as @yearly)
@monthly   Run once a month, "0 0 1 * *".
@weekly	   Run once a week, "0 0 * * 0".
@daily	   Run once a day, "0 0 * * *".
@midnight  (same as @daily)
@hourly	   Run once an hour, "0 * * * *".

HowTo

Валидация crontab

Проверка crontab/cron.d с помощью скрипта chkcrontab

Скрипт verifycron из книги Wicked cool shell scripts - полный сборник, 053-verifycron.sh

FIXME

Запускать cron каждый 10 секунд

Cron в Linux минимально принимает 1 минуту. Для запуска каждые n-секунд можно использовать sleep.

* * * * * php -q /var/www/cron_worker.php
* * * * * sleep 10; php -q /var/www/cron_worker.php
* * * * * sleep 20; php -q /var/www/cron_worker.php
* * * * * sleep 30; php -q /var/www/cron_worker.php
* * * * * sleep 40; php -q /var/www/cron_worker.php
* * * * * sleep 50; php -q /var/www/cron_worker.php

Предотвратить повторный запуск задачи из cron

/usr/bin/flock -xn /tmp/my_long_task.lock -c 'sh /path/backup.sh
  • -x –exclusive - get an exclusive lock (default)
  • -n –nonblock - fail rather than wait

Ошибки

Мой список траблшутинга

  • Первая строка не должна начинаться с * * * * *, может быть переменная или #закоментированная строка
  • Редактировать всё желательно через crontab -e.
  • Для поиска ошибок можно использовать утилиту chkcrontab.
  • В конце файла должна быть пустая строка.
  • Скрипт может не работать если не настроен PATH=
  • Права должны быть -rw-r–r–, owner root:root

Error: bad username; while reading /etc/cron.d/script

А также ERROR (Syntax error, this crontab file will be ignored)

Нужно указать пользователя.

Например Minute-Hour-Day_of_Month-Month-Day_of_week

0 3 * * * root php /var/www/perl.php

Error: bad minute; while reading crontab

Вероятнее всего используется перенос строк чего не должно быть.

No MTA installed, discarding output

Это скорее warning, нежели error. Нужно установить MTA (postfix или exim).

linux/terminal/terminal_tnt_cron.txt · Последнее изменение: 2021/10/17 01:21 — 127.0.0.1