Планирование задач
Основные планировщики
Наиболее распространенным планировщиком является cron
cron - демон, который запускает процессы на основании заданной регулярности
Работает с различными конфигурационными файлами, определяющими, когда процесс должен быть запущен
At используется для разовой задачи
Альтернативно можно использовать systemd таймеры
Описание cron
Пользовательские задачи для cron задаются командой crontab -e
Задается для того пользователя, из под которого запущен планировщик
Базовые параметры хранятся в /etc/cron.d
Устаревший путь - /etc/crontab, он более не используется
Cron оперирует скриптами, которые запускаются на принципах временного повторения (час, день, неделя, месяц)
Описание anacron
Anacron - сервис, который связан с cron, и отслеживающий задачи, для которых не указано специфичное время
Anacron обрабатывает задачи в /etc/cron.{hourly,daily,weekly,monthly}
Настройки хранятся в /etc/anacrontab
Планирование с cron
Выбрать опцию для создания планировщика
Запустить через crontab -e
Создать cron файл в /etc/cron.d
Настроить необходимое время:
*/ 10 4 11 12 1-5
минута (*/10)
час (4)
день месяца (11)
месяц (12)
день недели (1-5)
Cron не имеет STDOUT, любая такая команда приведет к ошибке
Документация по cron доступна в man 5 crontab
Systemd таймеры
Таймеры также выполняют задачи, которые может планировать cron
Получает все большее распространение, но cron все еще является стандартом
Документация доступна в:
man 7 systemd-timer для общей информации
man 7 systemd-time для спецификации форматов времени
Таймер сопровождается сервисом, который определяет как и что запускать
Запускать при необходимости нужно таймер, который уже будет ждать, когда нужно запустить сервис
Использование at
Для использования at необходим запущенный сервис atd
at <time> планирует задачу
Здесь же задаются параметры задачи в интерактивной оболочке
Ctrl+D закрывает оболочку
atq покажет список запланированных задач
atrm снимет задачи со списка
Управление временными файлами
Для управления временными файлами используетс служба systemd-tmpfiles
Директория /usr/lib/tmpfiles.d управляет настройками для создания, удаления и очистки временных файлов
Таймер systemd-tmpfiles-clean.timer может быть использован для автоматической очистки временных файлов
Он запускает systemd-tmpfiles-clean.service
Этот сервис в свою очередь запускает systemd-tmpfiles --clean
Файл /usr/lib/tmpfiles.d/tmp.conf содержит настройки для автоматической очистки
При изменении настроек необходимо скопировать файл в /etc/tmpfiles.d
После исполнить systemd-tmpfiles --clean etc/tmpfiles.d/tmp.conf для проверки на ошибки
tmp.conf содержит информацию о директориях для мониторинга, разрешениях на нее, владельцев и через сколько времени в отсутствии изменений удалять файлы
man tmpfiles.d содержит необходимую документацию
Важно не только правильно написать конфигурацию, но учитывать временные параметры в таймере systemd
Last updated
Was this helpful?