В предыдущая статья Я рассказывал вам о cron — системной программе, которая автоматически запускает задачи в определенное время. Теперь посмотрим, как автоматизировать задачи с помощью Anacron. Anacron позволяет нам преодолеть одну из слабостей Cron. Если в момент, когда предполагалось выполнить задачу, компьютер выключен, она не будет выполнена снова, пока не наступит следующее время года, и компьютер не будет включен.
В случае с Анакроном, Когда компьютер включается снова, он выполняет отложенные задачи.
Как автоматизировать задачи с помощью Anacron
При запуске компьютера Anacron отслеживает, когда в последний раз выполнялась данная инструкция и как часто сообщалось о ее необходимости выполнить. Как и в случае с Cron, список дел сохраняется в текстовом файле, который называется довольно неоригинально anacrontab. Но есть важное отличие, В этом случае дата устанавливается путем указания дня, задержки в минутах, идентификатора задания и команды, которая должна быть выполнена.
Anacron проверяет для каждой задачи, была ли она выполнена в течение определенного количества дней. Это количество дней является периодом, указанным для данной работы. Если он не был запущен, Anacron ждет необходимое количество минут и делает это. Затем запишите дату, которая послужит указанием, когда следует повторить тест.
Anacron можно найти по названию или в пакете cronie в основных дистрибутивах.
Для его запуска необходимо указать следующие параметры:
-F: Выполнение задачи, даже если она не в указанную дату.
-у: Изменяет дату заданий на текущий день, но не выполняет их.
-с: Указывает, что задача выполняется после завершения предыдущей.
-н: Это похоже на использование параметров -fy.
-к: При использовании с -d предотвращается отображение сообщений об ошибках.
-т: Сообщает Anacron, где найти список задач.
-Т: Проверяет настройки списка задач и при необходимости отображает сообщение об ошибке.
-S Указывает каталог, в котором хранятся временные метки.
В файле Anacrontab необходимо добавить следующие параметры
ОБОЛОЧКА=/bin/bash: Указывает, что в качестве интерпретатора команд следует использовать Bash.
ПОЧТА= После знака равенства мы указываем адрес электронной почты, на который следует отправить нам отчет об ошибке. Хотя в настольных дистрибутивах это делать не обязательно.
ПУТЬ=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin: Это позволяет нам не добавлять маршрут к каждой задаче.
Синтаксис задачи Anacrontab — команда идентификатора задания задержки периода, где:
Период: Это частота, с которой должна выполняться работа. Его можно указать в виде периода (@daily, @weekly или @monthly для дня, недели или месяца) или с помощью цифр (1 для дня, 7 для недели, 30 для месяца и любое число для любого периода дней).
Задержка: это время ожидания перед запуском. Выражается в минутах.
Идентификатор работы: Это имя, присвоенное задаче, чтобы отличать ее от других.
Команда: Это команда, которую anacron должен выполнить в указанное время.
Нам также необходимо создать каталог для запуска различных задач.
mkdir -p ~/.local/etc/anacrontab: ~/.local/etc/cron.daily ~/.local/etc/cron.weekly ~/.local/etc/cron.daily ~/.var/spool/anacron
Это создаст каталоги, в которых будут сохраняться ежедневные, еженедельные и ежемесячные сценарии выполнения, а также отчет о последнем выполнении anacron.
Чтобы указать ему использовать эти папки:
anacron -fn -t ~/.local/etc/anacrontab -S ~/.var/spool/anacron
Редактируем файл конфигурации из терминала
nano ~/.local/etc/anacrontab
Добавляем эти строки:
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
Можно настроить еще две переменные
START_HOURS_RANGE: Чтобы указать, что задания должны начинаться только в течение определенного периода времени.
RANDOM_DELAY: Устанавливает максимальную случайную задержку
На этом мы завершаем наш краткий обзор двух полезных инструментов командной строки для автоматизации задач на наших компьютерах. В последующих статьях мы увидим, что существуют графические приложения, которые позволяют нам делать то же самое.