Как пользователь Linux вы, вероятно, знакомы с cron. В течение многих лет он работал в качестве планировщика заданий Unix на основе времени. Теперь многие пользователи видят, что таймеры Systemd начинают заменять доминирование cron.
В этой статье будут рассмотрены основы настройки собственного таймера и проверки его правильной работы в вашей системе.
Читайте также: 7 полезных альтернатив Cron для Linux
Установка?
Если вы уже используете Systemd как система инициализации — многие популярные дистрибутивы Linux запускают его по умолчанию, включая Arch, Debian, Fedora, Red Hat и Ubuntu — в
Contents
Установка?
ьзуемые таймеры. Ничего не остается, кроме как использовать уже установленную функцию.Список существующих таймеров
Самый простой способ проверить наличие таймера на вашем компьютере — с помощью команды:
systemctl list-timers
Вам не обязательно запускать это от имени пользователя root.
systemctl list-timers --all
Параметр --all
также показывает неактивные таймеры. В настоящее время в этой системе нет неактивных таймеров.
Вы должны найти результат, похожий на следующее изображение:
Вы можете увидеть дату и вре
Список существующих таймеров
й отсчет до этого момента, сколько времени прошло с момента его последнего запуска, имя самого таймера и услугу, которую активирует каждый таймер.Все таймеры должны быть связаны с соответствующей службой. В следующем разделе вы увидите, как создать файл «.timer», который активирует файл «.service».
Создание нового таймера
Вы можете создать новый таймер, поместив собственный файл.timer в «/etc/systemd/system/». Создавая новый таймер для файла службы динамического DNS DuckDNS, я получил следующий текст:
[Unit] Description=Update duckdns dynamic DNS [Timer] OnCalendar=*-*-* 11:43:00 Persistent=true [Install] WantedBy=timers.target
1. Раздел [Юнит]
Опция «Description=…» в файле сообщает вам имя/описание самого таймера. В этом случае мой «duckdns.timer» обновит мой DNS, сообщив файлу «duckdns.service» выполнить ряд команд.
Вы можете изменить формулировку после «Description=», чтобы сказать все, что захотите.
2. Раздел [Таймер]
Здесь «OnCalendar=…» показывает один из способов сообщить таймеру, когда его следует активировать. *-*-*
означает «Год-Месяц-День», а звездочки означают, что с этого момента он будет выполняться каждый день каждого месяца каждого года. Время, указанное после звездочек, показывает, в какое время суток должен работать таймер.
“Persis
Создание нового таймера
таймер запустится автоматически, если он пропустил предыдущее время запуска. Это могло произойти потому, что компьютер был выключен до того, как событие могло состояться. Это необязательно, но рекомендуется.3. Раздел [Установить]
Наконец, «WantedBy=timers.target» показывает, что Systemd timers.target будет использовать этот файл.timer. Эта строка в файле показывает цепочку зависимостей от одного файла к другому. Эту строку нельзя пропускать или изменять.
Другие варианты
Множество других функций можно найти, просканировав справочную страницу Systemd с помощью man systemd.timer
. Перейдите в раздел «ОПЦИИ», чтобы узнать параме
1. Раздел [Юнит]
и и запуска после загрузки.Запуск таймера
Активируйте любой созданный вами таймер с помощью синтаксиса systemctl enable
и systemctl start
.
sudo systemctl enable duckdns.timer sudo systemctl start duckdns.timer
Посмотрите еще раз на systemctl list-timers
, чтобы увидеть таймер в действии.
2. Раздел [Таймер]u/wp-content/uploads/2024/05/systemdtimers-list2-c.png" alt="Список системных таймеров">
Вы можете увидеть, работает ли ваш таймер должным образом, проверив соответствующий служебный файл с помощью systemctl status
. В этом случае вы можете видеть, что мой таймер сработал в 11:43:00, как и должно было быть.
Заключение
Хотя многие сторонние программы, включая DuckDNS, поставляются со сценариями, которые позволяют им обновляться по мере необходимости, создание таймеров в Systemd — это полезный навык. Создание таймера для DuckDNS здесь было ненужным, но оно показывает, как будут работать другие типы таймеров Systemd.
Эти знания будут полезны, например, для создания и запуска собственных Bash-скриптов. Вы даже можете использовать его, чтобы изменить существующий таймер, чтобы он лучше соответствовал вашим предпочтениям. Кроме того, всегда полезно знать, как работает ваш компьютер, а п
3. Раздел [Установить]
ножество основных функций, эта часть головоломки может помочь вам лучше понять, каким образом события запускаются каждый день.Спасибо, что подписались. Удачи в создании собственных таймеров.