LINUX.ORG.RU

Так вам каждые три дня или возможно вы подразумеваете каждый третий день месяца?
Про летнее зимнее время я вообще не понял.

anc ★★★★★ ()
Ответ на: комментарий от anc

каждые три дня
т.е. если последний запуск был 30 августа, то следующий запуск должен быть 02 сентября
с переходом на зимнее - возможно это crond умеет

Vlad-76 ★★★ ()

Из cron каждый час, и свой фильтр, пропускающий к реальной задаче 1 из 72 запусков.

Elyas ★★★★★ ()
Ответ на: комментарий от Elyas

можно и каждые 72 часа
и фильтровать переход на зимнее время

Vlad-76 ★★★ ()
Ответ на: комментарий от futurama

ну вот, я же хотел каждый третий
*/3 - из этого мне было не ясно что есть первый день запуска? В момент втыкания - это первый день или день в котором совпадет условие 0 1

Vlad-76 ★★★ ()
Последнее исправление: Vlad-76 (всего исправлений: 1)

создавай файл, и раз в день проверяй что он не старше 3х дней. если старше - удаляй, выполняй задачу и делай файл заного

anonymous ()
Ответ на: комментарий от anonymous

создавай файл, и раз в день проверяй что он не старше 3х дней. если старше - удаляй, выполняй задачу и делай файл заного

Не очень удачная последовательность. Поправлю предложенный вами вариант делаем touch при запуске скрипта и лучше с указанием времени. Что-то типа touch -a -m --date='07:01'

anc ★★★★★ ()
Последнее исправление: anc (всего исправлений: 1)
Ответ на: комментарий от futurama

Минус вашего решения. Если по неосторожности запустить скрипт ещё раз, задачи будут плодиться.

anc ★★★★★ ()

запускай раз в день и в скрипте проверяй, если кол-вол дней с начала Эпохи четное, то продолжаем работу.

if [[ $(( ( $(date +%s) / ( 24* 3600) ) % 2 )) == 0 ]]
then  echo OK
fi
Bers666 ★★★★★ ()
Ответ на: комментарий от EXL

Ну положим Systemd Calendars.
Но там тоже */2 работает только в рамках одного регистра «Число месяца». Т.е. 31 и 1 число это числа одного рода.

Bers666 ★★★★★ ()
Последнее исправление: Bers666 (всего исправлений: 2)
Ответ на: комментарий от Vlad-76

% значит остаток от деления
% 2 ----> % 3

P.S. также можно вызывать date -u чтоб исключить влияние всяких локальных таймзон с переводами времени
P.P.S и не запускать скрипт с 2 до 3 ночи, когда и происходит перевод времени, чтоб не пропустить запуск.

Bers666 ★★★★★ ()
Последнее исправление: Bers666 (всего исправлений: 2)
Ответ на: комментарий от Bers666

Ну вот. И кто сказал что dcron не нужен (это не к вам конкретно). А в нем из каробки без костылей можно забубенить.

anc ★★★★★ ()

man systemd.timer

(Пригибается.)

anonymous ()
Ответ на: комментарий от Bers666

ась?

Это два независимых действия

1. можно добавлять в отдельную очередь (at -q ...)

2. проверять есть ли уже задания в этой очереди перед добавлением нового

futurama ★★★★★ ()
Последнее исправление: futurama (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.