Недавно мне было указано, что существует альтернатива cron, а именно системные таймеры.
Однако я ничего не знаю о системных или системных таймерах. Я использовал только cron.
В Arch Wiki есть небольшая дискуссия . Однако я ищу подробное сравнение между cron
системными и системными таймерами, уделяя особое внимание плюсам и минусам. Я использую Debian, но я бы хотел общее сравнение для всех систем, для которых доступны эти две альтернативы. Этот набор может включать только дистрибутивы Linux.
Вот что я знаю.
Крон очень стар, начиная с конца 1970-х годов. Первоначальный автор cron - Кен Томпсон, создатель Unix. Cron Vixie, из которых cron в современных дистрибутивах Linux являются прямыми потомками, датируется 1987 годом.
Systemd намного новее и несколько противоречив. Википедия сообщает мне, что ее первый релиз был 30 марта 2010 года.
Итак, мой текущий список преимуществ cron над системными таймерами:
Cron гарантированно присутствует в любой Unix-подобной системе, в том смысле, что он является устанавливаемой поддерживаемой частью программного обеспечения. Это не изменится. Напротив, systemd может остаться или не остаться в дистрибутивах Linux в будущем. В основном это система инициализации, и ее можно заменить другой системой инициализации.
Cron прост в использовании. Определенно проще, чем системные таймеры.
Соответствующий список преимуществ системных таймеров над cron:
- Системные таймеры могут быть более гибкими и способными. Но я бы хотел примеры этого.
Итак, подведем итог, вот несколько вещей, которые было бы хорошо увидеть в ответе:
- Подробное сравнение таймеров cron и systemd, включая плюсы и минусы использования каждого из них.
- Примеры того, что один может сделать, а другой нет.
- По крайней мере одно параллельное сравнение cron-скрипта с системным таймером.
источник
Ответы:
Вот некоторые моменты об этих двух :
проверка того, что на самом деле делает ваша работа cron, может быть беспорядком, но все события системного таймера тщательно регистрируются в системном журнале, как и другие системные модули, основываясь на событии, которое делает вещи намного проще.
Системные таймеры - это системные сервисы со всеми возможностями управления ресурсами, планирования ввода-вывода ЦП, ...
Есть список:
с опцией зависимости, как и у других сервисов systemd, могут быть зависимости от времени активации.
Единицы могут быть активированы различными способами, а также их комбинация может быть настроена. Службы могут запускаться и запускаться различными событиями, такими как пользователь, загрузка, изменения состояния оборудования или, например, через 5 минут после подключения некоторого оборудования и ...
намного проще конфигурировать некоторые файлы и прямые теги, чтобы выполнять различные настройки в соответствии с вашими потребностями с помощью системных таймеров.
Легко включить / отключить все это с помощью:
и убить всех детей работы с:
Системные таймеры могут быть запланированы с каландрами и монотонным временем, что может быть очень полезно в случае различных часовых поясов и ...
события системного времени (календарь) более точны, чем cron (кажется, с точностью до 1 с)
События системного времени более значимы, для тех повторяющихся или даже тех, которые должны происходить один раз, вот пример из документа :
С точки зрения использования процессора системный таймер пробуждает процессор по истечении времени, но cron делает это чаще.
События таймера могут быть запланированы на основе времени окончания выполнения, некоторые задержки могут быть установлены между выполнениями.
Связь с другими программами также заметна, иногда это необходимо для некоторых других программ, чтобы знать таймеры и состояние своих задач.
источник
man systemd.time
что, кажется, противоречит этому: нелокальные часовые пояса, кроме UTC, не поддерживаются.Прямо изо рта лошади, так сказать: https://wiki.archlinux.org/index.php/Systemd/Timers#As_a_cron_replacement
Выдержка из страницы выше:
источник