From: "В.А. Илларионов" <gbimobou@gmail.com> To: ALT Linux Sisyphus discussions <sisyphus@lists.altlinux.org> Subject: [sisyphus] Быстрая замена кронтабов на таймеры Date: Tue, 24 Oct 2017 18:23:44 +0800 Message-ID: <605e3602-c33e-68c8-bf1b-89edfdde2fc9@gmail.com> (raw) Реализовал следующим образом. 1. Создал два шаблона - для периодических таймеров и их "целей", назвал их doit@ - мол, "делать это еже..." minutely ...минутно, hourly ...часно, daily ...дневно, weekly ...недельно, monhly ...месячно, yearly ...годно. Само собой, doit что в именах, что в шаблоне таймера и периодически запускаемых сервисах можно заменить на do, cron, timers или что угодно. Итак. # cat /lib/systemd/system/doit@.target [Unit] Description=%i timer target StopWhenUnneeded=yes # cat /lib/systemd/system/doit@.timer [Unit] Description=%i timer [Timer] OnCalendar=%i Persistent=true # Рандомизацию пока отключил - не знаю, как оно сочетается с запуском ежеминутных скриптов: #RandomizedDelaySec=10min Unit=doit@%i.target [Install] WantedBy=timers.target 2. Включил и запустил периодические таймеры: for time in minute hour dai week month year; do for act in enable start; do systemctl $act doit@${time}ly.timer done done 3. Создал сервисы, требующие периодического исполнения, нужную периодичность указав через секцию [Install]. Вот пример: # cat /lib/systemd/system/logrotate.service [Unit] Description=Rotate system logs [Service] Nice=19 Type=simple IOSchedulingClass=2 IOSchedulingPriority=7 ExecStart=/usr/sbin/logrotate /etc/logrotate.conf [Install] WantedBy=doit@daily.target 4. И, наконец, включил их: systemctl enable <список таких сервисов> Собственно, готово - работает. Вот: # systemctl list-timers NEXT LEFT LAST PASSED UNIT ACTIVATES Tue 2017-10-24 18:18:00 IRKT 32s left Tue 2017-10-24 18:17:02 IRKT 25s ago doit@minutely.timer doit@minutely.target Tue 2017-10-24 19:00:00 IRKT 42min left Tue 2017-10-24 18:00:12 IRKT 17min ago doit@hourly.timer doit@hourly.target Wed 2017-10-25 00:00:00 IRKT 5h 42min left n/a n/a doit@daily.timer doit@daily.target Wed 2017-10-25 15:46:49 IRKT 21h left Tue 2017-10-24 15:46:49 IRKT 2h 30min ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service Mon 2017-10-30 00:00:00 IRKT 5 days left n/a n/a doit@weekly.timer doit@weekly.target Wed 2017-11-01 00:00:00 IRKT 1 weeks 0 days left n/a n/a doit@monthly.timer doit@monthly.target Mon 2018-01-01 00:00:00 IRKT 2 months 7 days left n/a n/a doit@yearly.timer doit@yearly.target 7 timers listed. Pass --all to see loaded but inactive timers, too. # ls /etc/systemd/system/doit@daily.target.wants /etc/systemd/system/doit@minutely.target.wants /etc/systemd/system/doit@monthly.target.wants /etc/systemd/system/doit@daily.target.wants: logrotate.service /etc/systemd/system/doit@minutely.target.wants: unbound-stats.service /etc/systemd/system/doit@monthly.target.wants: unbound-anchor.service -- Мимо крокодил. WBR, rednex CIO. Viber = +7(964)103-65-67 JID = <mailto:> Skype = $local_part@<mailto:>
next reply other threads:[~2017-10-24 10:23 UTC|newest] Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-10-24 10:23 В.А. Илларионов [this message] 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 ` Вадим Илларионов
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=605e3602-c33e-68c8-bf1b-89edfdde2fc9@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