Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Cron выполнил задачу не вовремя  (Прочитано 932 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн dsroot

  • Автор темы
  • Новичок
  • *
  • Сообщений: 28
  • В России не ищут счастья, а ждут.
    • Просмотр профиля
Cron выполнил задачу не вовремя
« : 31 Июля 2018, 12:01:35 »
Есть правило в cron (вызываю crontab -e)
0 12 7-10 * 1-5 echo "..."
Я до сегодняшняго дня думал что это: Выполнять в 12:00 каждые 7,8,9,10 числа месяца в рабочие дни. Но правило отработало сегодня 31.07.2018.
Где я напутал с синтаксисом cron?

И 1.08.2018 в 12:00 отработало((
« Последнее редактирование: 01 Августа 2018, 11:09:38 от dsroot »
Нам без дураков нельзя, нам с ними умней.

Оффлайн Sly_tom_cat

  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12130
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Re: Cron выполнил задачу не вовремя
« Ответ #1 : 01 Августа 2018, 21:47:16 »
1-5 замените на *
В кроне дни недели с остальным по ИЛИ работают.
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн dsroot

  • Автор темы
  • Новичок
  • *
  • Сообщений: 28
  • В России не ищут счастья, а ждут.
    • Просмотр профиля
Re: Cron выполнил задачу не вовремя
« Ответ #2 : 02 Августа 2018, 22:23:37 »
Спасибо за подсказку.
Но тогда появляется другой вопрос: А как должно выглядеть правило крона со следующими условиями:

Скрип должен выполнятся один раз в месяц в 12:00 7,8,9 или 10 числа в рабочий день.
Нам без дураков нельзя, нам с ними умней.

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6690
  • 20% Cooler
    • Просмотр профиля
Re: Cron выполнил задачу не вовремя
« Ответ #3 : 02 Августа 2018, 22:55:36 »
dsroot, тут уже одним кроном не обойтись - либо таймер systemd, либо проверка условий самим скриптом.
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн Sly_tom_cat

  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12130
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Re: Cron выполнил задачу не вовремя
« Ответ #4 : 06 Августа 2018, 12:39:43 »
Скрип должен выполнятся один раз в месяц в 12:00 7,8,9 или 10 числа в рабочий день.
Эти условия крон не потянет.

Как вариант - в самом скрипте прописать следующие проверки:
1. что задача уже запускалась в этом месяце - если да, то сразу выход.
2. что задача запущена в будничный день - если нет, то сразу выход.

Тогда в крон пишем:
0 12 7-10 * * "наш скрипт"

Чуть более изощренно можно решить через systemd но и там врят ли удастся обойтись без доп. проверок в скрипте.
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн dsroot

  • Автор темы
  • Новичок
  • *
  • Сообщений: 28
  • В России не ищут счастья, а ждут.
    • Просмотр профиля
Re: Cron выполнил задачу не вовремя
« Ответ #5 : 09 Августа 2018, 11:12:24 »
Спасибо, за ответы!
Нам без дураков нельзя, нам с ними умней.

 

Страница сгенерирована за 0.07 секунд. Запросов: 25.