LINUX.ORG.RU

Cron - всё? systemd.timers теперь рулит и педалит? А так же аналогичные программы на GUI - что выбрать?

 , , , ,


1

1

Так вышло что за долгие годы в линуксе я не пользовался подобными инструментами, и ничего о них не знаю. Но недавно по работе понадобилась автоматизация различных задач, да и захотелось тем же самым заняться дома. Подумал что если что-то делаю изо дня в день, то наверно неплохо бы автоматизировать это и сэкономить время на более важных делах. Часть задач требует запуска графических программ, а часть может выполняться в консоли, и как это все сделать пока непонятно.

Хотелось бы получить комментарий тех кто в теме, по каждому из пунктов, которые я напишу, потому что сам я, повторюсь, в таких программах не мастер.

1) Начал конечно с GUI. В КДЕ есть встроенный автозапуск приложений. «Параметры системы» > «Запуск и завершение» > «Автозапуск». Там можно добавить приложение и сценарий. Но как это работает для меня непонятно. Допустим указал путь до нужного графического приложения. А что за сценарий? На каком он языке, как его писать? Он сможет управлять задачами тех же КДЕ-приложений, чтобы они выполняли нужный набор действий после запуска? Где можно найти официальную инструкцию к этой опции в КДЕ?

2) Потом нашел вот такое, называется KTimer. Это тоже программа для КДЕ, только как мне показалось она еще более слабая, чем встроенное средство. Вроде как просто запускалка программ, даже без сценариев. А что толку просто запускать программы, чтобы они просто висели? Если кто-то пользовался, подскажите для чего оно?

https://www.kde.org/applications/utilities/ktimer/

3) Потом я нашел cron. Мощный консольный планировщик задач, и говорят не очень сложный в использовании. Уже было начал разбираться, как вдруг прочел, что cron давно deprecated, тем более в системах на systemd. А значит в ubuntu его смысла использовать нет, и тратить время на его освоение тоже, тем более что systemd уже установлен и все это в нем есть. Так ли это, что нет смысла тратить на него время?

4) Начал гуглить про systemd.timers, чем он отличается от cron, и нагуглил вот такое.

Here are some points about those two:

1. checking what your cron job really does can be kind of a mess, but all systemd timer events are carefully logged in systemd journal like the other systemd units based on the event that makes things much easier.

2. systemd timers are systemd services with all their capabilities for resource management, IO CPU scheduling, ... There is a list :

  • systemcall filters
  • user/group ids
  • membershipcontrols
  • nice value
  • OOM score
  • IO scheduling class and priority
  • CPU scheduling policy CPU
  • affinity umask
  • timer slacks
  • secure bits
  • network access and ,...

3. with the dependencies option just like other systemd services there can be dependencies on activation time.

4. Units can be activated in different ways, also combination of them can be configured. services can be started and triggered by different events like user, boot, hardware state changes or for example 5mins after some hardware plugged and ,...

5. much easier configuration some files and straight forward tags to do variety of customizations based on your needs with systemd timers.

6. Easily enable/disable the whole thing with:

systemctl enable/disable

and kill all the job's children with:

systemctl start/stop

7. systemd timers can be scheduled with calenders and monotonic times, which can be really useful in case of different timezones and ,...

8. systemd time events (calendar) are more accurate than cron (seems 1s precision)

9. systemd time events are more meaningful, for those recurring ones or even those that should occur once, here is an example from the document:

Sat,Thu,Mon-Wed,Sat-Sun → Mon-Thu,Sat,Sun *-*-*00:00:00
  Mon,Sun 12-*-* 2,1:23 → Mon,Sun 2012-*-* 01,02:23:00
                Wed *-1 → Wed *-*-01 00:00:00
        Wed-Wed,Wed *-1 → Wed *-*-01 00:00:00
             Wed, 17:48 → Wed *-*-* 17:48:00 

10. From the CPU usage view point systemd timer wakes the CPU on the elapsed time but cron does that more often.

11. Timer events can be scheduled based on finish times of executions some delays can be set between executions.

12. The communication with other programs is also notable sometimes it's needed for some other programs to know timers and the state of their tasks.

Вобщем, сложилось впечатление, что плюсов у systemd.timers куда больше, чем минусов. Так ли это?

И везде советуют в принципе systemd.timers.

https://unix.stackexchange.com/questions/278564/cron-vs-systemd-timers/281203

https://mjanja.ch/2015/06/replacing-cron-jobs-with-systemd-timers/

https://medium.com/horrible-hacks/using-systemd-as-a-better-cron-a4023eea996d

Подскажите, что лучше использовать, а так же по первым 2м пунктам (планировщики с графической оболочкой). И есть ли еще какие-то варианты, может еще какие планировщики?

Перемещено tailgunner из linux-general

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

стабильных в смысле «предназначенных для установки на компы конечных пользователей». Но ты можешь и дальше цепляться к словам, ничего не возражая по сути. Разрешаю.

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

У разработчиков systemd есть известная формула: документировано - стабильно, не документировано - нестабильно и может измениться в любой момент без предупреждения.

Тогда зачем они ломают то, что документировано?

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

ты можешь и дальше цепляться к словам

если ты считаешь, что твои слова неправильно интерпретированы, расшифруй подробнее

запилил костыль на недокументированном поведении
Спасибо надо сказать японцу, который по доброте душевной покопался в документации, хоть и не был обязан это делать.

вот здесь, например

стабильных в смысле «предназначенных для установки на компы конечных пользователей»

чтобы никто не цеплялся к словам, разверни, пожалуйста, мысль до конца - в каком тогда смысле «стабильные» есть?

и где тот самый репозиторий, предназначенный для конечных пользователей?

Не покурил маны, проигнорировал все рекомендации, запилил костыль

я курил маны (по мере возможностей), не игнорировал рекомендации и не пилил костыли, даже периодически проверял новости

только вот lvm (и не только) поломали именно в «стабильной ветке»

Почему с хейтерами systemd всегда повторяется одна и та же история

причём тут «хейтеры»?

разработчики сами признали, что «рефакторинг» udev в v240 привёл к серъёзным проблемам

ничего не возражая по сути

да чего ж тут возражать, когда релиз ещё в прошлом году выпустили

пугают только стремления Лёни идти к новым замечательным свершениям, в то время как системы на systemd без «допиливания и стабилизации мейнтейнерами дистров» уже попросту не запускаются

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

Рано или поздно и Лёнька сдуется.

Разница в том, что мейнтейнеры дивана пашут на голом энтузиазме, а Лёнька — за зарплату. Как думаешь, у кого мотивации больше?

Hint: Лёнька много раз давал понять, что опенсорцный systemd ориентируется на нужды RedHat, потому что RedHat платит, а "вы все", холопы, жрите что дают, и не возмущайтесь.

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

Разница в том, что мейнтейнеры дивана пашут на голом энтузиазме, а Лёнька — за зарплату. Как думаешь, у кого мотивации больше?

Работа ассенизатором тоже оплачивается, однако желающих не так и много. Хотя вполне возможно что на должности ассенизатора с Лёни было бы больше пользы.

h578b1bde ★☆
()
Ответ на: комментарий от quantum-troll

NIH

Тогда зачем они ломают то, что документировано?

Когда сломано всё, что имело фатальный недостаток, приходится ломать своё.

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

Ну а если tty нужен???
(если что - я троллю. Вот это вот с logind, без которого нихрена не работает, и который ни с чем кроме ядра Linux с НЕ отключенными не всегда нужными модулями не работает - главная заноза systemd).

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

Тогда зачем они ломают то, что документировано?

По ошибке. Ваш кэп.

Товарищ генерал подсказывает что это применимо ко всему systemd в целом, начиная с его создания.

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

а «вы все», холопы, жрите что дают, и не возмущайтесь.

Скажем дружно - ... нужно

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

Ну а если tty нужен???

Кому нужен? Единственному пользователю с парой демонов? Нужно подключиться к машине — подрубаешь клавиатуру с монитором, делаешь что надо, отключаешь клавиатуру с монитором. Не про юзабельность машина, она просто работает и вмешательства человека не требует.

Вот это вот с logind, без которого нихрена не работает, и который ни с чем кроме ядра Linux с НЕ отключенными не всегда нужными модулями не работает - главная заноза systemd

ЯННП.

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

К счастью и самим systemd можно не пользоваться

Это просто инструмент. Местами хороший, местами плохой. Если ты почитаешь мои комментарии, увидишь, что я не топлю за systemd, но и не топлю против.

Скажем дружно - ... нужно

Из CentOS/Fedora/RHEL ты его не выпилишь без БОЛИ, например. И менять дистрибутив (особенно там, где он уже выполняет задачи) — затея сомнительная не менее, чем трудо- и времязатратная.

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

Из CentOS/Fedora/RHEL ты его не выпилишь без БОЛИ, например. И менять дистрибутив (особенно там, где он уже выполняет задачи) — затея сомнительная не менее, чем трудо- и времязатратная.

Ну да. Но это не мешает использовать тот же крон, а для развертывания своих приложений использовать тот супервизор процессов, который нравится

annulen ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.