[РЕШЕНО] Systemd и cron

Цитата из вики:
…systemd вполне способна заменить определенную функциональность таких демонов, как cron
Может заменить.. а как?
Может быть, установка и запуск сервиса cronie.service?
чисто теоретически - таймером. Но когда я смотрел нужно было самому создвать юниты так как целиком из коробки самое простое это завести cronie.
Consider removing cron from your system and use systemd timer units instead. Timer units currently have no support for calendar times (i.e. cannot be used to spawn things “at 6 am every monday”, but can do “run this every 7 days”), but for the usual /etc/cron.daily/, /etc/cron.weekly/, … should be good enough, if the time of day of the execution doesn't matter (just add four small service and timer units for supporting these dirs. Eventually we might support these out of the box, but until then, just write your own scriplets for this).
http://freedesktop.org/wiki/Software/sy … imizations
Лозунг у них был такой: "Познание бесконечности требует бесконечного времени". С этим я не спорил, но они делали из этого неожиданный вывод: "А потому работай не работай — все едино". И в интересах неувеличения энтропии Вселенной они не работали. (с)
Про systemd хорошо написано здесь, но про таймеры очень мало. После прочтения понял, что системд рулит и пошёл читать маны.
В итоге получилось заменить крон на systemd.timer.
Последовательность действий (на примере grive):
1. Создаём файл таймера /etc/systemd/system/grive.timer со следующим содержимым:
[Timer]
OnBootSec=15min
OnUnitActiveSec=15min
Unit=grive.service
[Install]
WantedBy=multi-user.target
2. Создаём юнит-файл /etc/systemd/system/grive.service
[Unit]
Description=Synchronize my files
[Service]
WorkingDirectory=/home/rec/.grive
Nice=10
ExecStart=/usr/bin/grive
Type=simple
3. Включаем наш таймер:
#systemctl start grive.timer
#systemctl enable grive.timer
4. Проверяем статус таймера:
$ systemctl status grive.timer
grive.timer
	  Loaded: loaded (/etc/systemd/system/grive.timer; enabled)
	  Active: active (waiting) since (null); 3s ago

Мы получили таймер, который активируется через 15 минут после загрузки и каждые последующие 15 минут выполняет одноимённый юнит. На каждую задачу - по таймеру и юниту, объдинить их в один таймер мне не удалось.
rec Не знаешь как ему сказать активироваться какждый месяц, скажет определенного числа, ну там например 20-го ?
Dganic
rec Не знаешь как ему сказать активироваться каждый месяц, скажет определенного числа, ну там например 20-го ?
Я не разбирался,но посмотри
http://blog.higgsboson.tk/2013/06/09/use-systemd-as-a-cron-replacement/
и
https://wiki.archlinux.org/index.php/Systemd/cron_functionality
Последний крик моды - эхо 30-летней давности.
Dganic
man systemd.time
man systemd.timer

вроде так
OnCalendar=*-*-20 00:00:00
https://wiki.archlinux.org/index.php/Systemd/cron_functionality#Starting_events_according_to_the_calendar
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
Подскажите, с помощью таймеров можно выполнить нужный сервис например по понедельникам в час дня или при следующей загрузке компьютера если в это время компьютер был выключен?
www.linux32.ru - новости и статьи о Linux
32reg
Подскажите, с помощью таймеров можно выполнить нужный сервис например по понедельникам в час дня или при следующей загрузке компьютера если в это время компьютер был выключен?

Запускать задание после старта компьютера позволяет дирректива "OnBootSec=", а чтобы задание выполнялось по понедельникам в час дня нужно, например, в диррективе "OnCalendar=" прописать "Mon 13:00". А вообще вот статья на русском языке, описывающая разные варианты конфигурации Systemd.timer. Запуск задач по расписанию
 
Зарегистрироваться или войдите чтобы оставить сообщение.