ALT Linux Sisyphus discussions
 help / color / mirror / Atom feed
From: "Вадим Илларионов" <gbimobou@gmail.com>
To: sisyphus@lists.altlinux.org
Subject: Re: [sisyphus] Быстрая замена кронтабов на таймеры
Date: Mon, 6 Nov 2017 11:58:40 +0800
Message-ID: <de11a0dd-a70c-5216-3ef6-37621b70afb9@gmail.com> (raw)
In-Reply-To: <CAEdvWkSz8cHGx27Re=HyiNz6dR+iJRmAzUY56u99hDUa1CW7tQ@mail.gmail.com>

03.11.2017 20:14, Alexey Shabalin пишет:
> 3 ноября 2017 г., 11:25 пользователь В.А. Илларионов
> <gbimobou@gmail.com> написал:
>> 28.10.2017 13:11, Anton Farygin пишет:
>>>> Во всяком случае, подобного решения не встречал ни в родном, ни в
>>>> иноязычных руководствах. Хотя, вроде бы, само напрашивается. Всё же
>>>> Леннарт гений - почти как Ленин :)
>>>>
>>> Интересное решение. Надо упакечивать
>>
>> Со спеками я работал, но тут поскриптовать при установке надо, и что-то опасаюсь я.
>> В праздники попробую разобраться с этим.
>> for do in enable start; do
>>     systemctl $do doit@${minute,hour,dai,week,month,quarter,semi-annual,year}ly.timer
>> done
> А вы видели вот эти проекты:
> https://github.com/systemd-cron
> тут собраны разные реализации генератора таймеров на основе crontab.

Как-то всё несколько выморочно, излишне наворочено. Ведь всё необходимое
уже наличествует в systemd, достаточно всего-то:
а) пары шаблонов - один для таймеров, другой для таргетов к этим таймерам;
б) включить/запустить надобные таймеры по оным шаблонам;
в) создать service-файлы с указанием таргета требуемой периодичности в
секции [Install] - а без этого никак  при любой реализации
(автогенератору таковых на основе кронтаб-скриптов сам Леннарт, вон, дал
отлуп:
https://lists.freedesktop.org/archives/systemd-devel/2013-September/013120.html).

> Так же там описаны таймеры:
> boot,
> hourly,
> daily,
> weekly,
> monthly,
> yearly,
> minutely,
> quarterly,
> semi-annually

Ну, они много где описаны. Суть одна - исполнять еже<...>но, без
указания сложных конструкций из даты:времени/периодичности (собственно,
именно то, чем занимается /etc/cron.<...>ly/, плюс не охваченные этим
способом ежеминутные, ежеквартальные и ежесеместровые запуски).
А для сложных конструкций в замену /etc/cron.d приходится, конечно,
создавать отдельные таймеры. Причём, в некоторых ситуациях таймер,
похоже, справится там, где крон надо костылём подпирать - например:

# By default, run at 00:57 on every Sunday, but do nothing unless the
day of the month is less than or equal to 7. Thus, only run on the first
Sunday of each month.
# crontab(5) sucks, unfortunately, in this regard; therefore this hack
(see #380425).
57 0 * * 0 root [ -x /usr/share/mdadm/checkarray ] && [ $(date +\%d) -le
7 ] && /usr/share/mdadm/checkarray --cron --all --idle --quiet

Не уверен, но нюхом чую - можно такое условие таймером обрисовать. :)

> В планах есть упаковать, как замену cron. Но руки все не доходят.
> Нарисовал таймер для logrotate, и отключил crond у себя.
> Больше никаких заданий в кроне нет, поэтому и успокоился :)

Я же пока плохо представляю, как состряпать спек для пары шаблонов и
скрипта установки/удаления такого, с позволения сказать, "пакета". А
после некоторым мейнтейнерам потребуется включать в свои пакеты помимо
кронтабов ещё и сервисы к периодичным задачам (logrotate тот же) с
учётом оного новшества - то есть, сперва этот мой предполагаемый "пакет"
железно должен быть принят в альтовские дистрибутивы.

-- 
Мимо крокодил.
WBR, rednex CIO.
JID = <mailto:>
Skype = $local_part@<mailto:>
Viber = +7(964)103-65-67

Опции rsync -aHAX --delete мозг автоматом переводит как "удалить к чёртовой матери!"



      reply	other threads:[~2017-11-06  3:58 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-24 10:23 В.А. Илларионов
2017-10-28  2:11 ` [sisyphus] " Вадим Илларионов
2017-10-28  5:11   ` [sisyphus] " Anton Farygin
2017-11-03  8:25     ` В.А. Илларионов
2017-11-03 12:14       ` Alexey Shabalin
2017-11-06  3:58         ` Вадим Илларионов [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=de11a0dd-a70c-5216-3ef6-37621b70afb9@gmail.com \
    --to=gbimobou@gmail.com \
    --cc=sisyphus@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux Sisyphus discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \
		sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru
	public-inbox-index sisyphus

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.sisyphus


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git