Те, кто знаком с системой Unix, также будут знакомы с приложение cron , который позволяет планировать и автоматизировать выполнение задач самостоятельно. У нас даже есть учебные пособия, которые покажут, как начать работу с cron и crontabs. Однако cron не идеален, поскольку требует, чтобы ваша система работала 24 часа в сутки. Если у вас есть привычка выключать компьютер на ночь, а задание cron запланировано на часы сна, задание не будет выполнено. К счастью, есть несколько альтернатив cron, которые могут работать лучше, чем cron. Давайте их проверим.
Читайте также: Как легко создавать задания Cron в Linux с помощью Zeit
1. Анакрон
Анакрон — это периодический планировщик команд, аналогичный cron. Единственное отличие состоит в том, что для этого не требуется, чтобы ваш компьютер был постоянно включен. Вы можете запланировать выполнение задачи в любое время. Если ваш компьютер выключен, задача будет выполнена при следующем включении компьютера.
Для начала просто установите anacron
в свою систем
Contents
1. Анакрон
льшинстве менеджеров пакетов. Используйте следующую команду для установки в Ubuntu:sudo apt install anacron
Анакрон работает аналогично cron. Вы можете добавить свою работу в файл /etc/anacrontab
.
Синтаксис добавления вакансии:
period delay-after-computer-start job-identifier command
Например, чтобы каждый день запускать сценарий резервного копирования, вы можете добавить следующую команду:
1 15 cron.daily /bin/sh /home/ramces/backup.sh
Недостаток анакрона заключается в том, что он занимается только задачами по ежедневному, еженедельному или ежемесячному графику. Его нельзя использовать для почасового или минутного расписания.
2. Крони
Еще одна замечательная альтернатива cron, которую вы можете установить сегодня, — это Крони . В отличие от предыдущих записей, Cronie представляет собой небольшой набор программного обеспечения, целью которого является обеспечение полноценного использования cron. Для этого Cronie по умолчанию включает пакет anacron. Это означает, что cronie может по умолчанию обеспечивать как синхронное, так и асинхронное планирование заданий.
Кроме того, установка cronie относительно проста. Во-первых, вам необходимо получить исходный код программы из Страница на Гитхабе :
wget https://github.com/cronie-crond/cronie/releases/download/cronie-1.6.1/cronie-1.6.1.tar.gz
2. Крони
спакуйте архив, запустив tar на терминале:cd Downloads tar xvzf cronie-1.6.1.tar.gz
Оттуда зайдите в каталог Cronie и скомпилируйте исходный код программы:
cd cronie-1.6.1/ ./configure make sudo make install
После этого вы можете использовать Cronie для управления заданиями cron на вашем компьютере. Подобно анакрону и cron, вы можете создать задание cron, запустив crontab -e
. Это позволит вам редактировать crontab вашего конкретного пользователя. Зная это, Крони также следует стандартному формату:
* * * * 0 /your/command/here
Читайте также: Как использовать таймеры Systemd в качестве замены Cron
3. fcron
Фкрон — лучшее из cron и anacron. Для этого не требуется, чтобы ваш компьютер работал круглосуточно и без выходных, и он может выполнять задачи почасово или поминутно.
Единственный способ установить Fcron — загрузить исходный файл и скомпилировать его самостоятельно.
- Загрузите исходный файл здесь .
- Распакуйте архив. Откройте терминал и измените путь к папке извлеченного архива.
- Выполните следующие команды:
./configure make sudo make install
Во время установки вам будет задано несколько вопросов, и на все из них вы сможете смело ответить «да» (да).
Чтобы начать создание задания fcron, просто введите fcron -e
в терминале.
Синтаксис fcron аналогичен cron:
minute hour day-of-month month day-of-week command-to-be-executed
и у него больше возможностей, чем у cron, например, настройка запуска задачи в определенном временном диапазоне.
Для тех, кто предпочитает графический интерфейс, вы можете проверить fcronq
4. bcron
Бкрон — это простая и современная альтернатива стандартной программе cron. Как и Cronie, bcron стремится предоставить набор программного обеспечения, которое управляет планированием заданий вашей системы. Это достигается путем разделения всех функций компонентов cron на отдельные программы. Это, в свою очередь, позволяет bcron быть модульным и безопасным.
При этом установка bcron невероятно проста. При этом, если вы ис
3. fcron
или Ubuntu, вы можете установить программу через apt:sudo apt install bcron
После этого вы можете использовать bcron для планирования задач в вашей системе. Для этого вам необходимо сначала запустить следующую команду, чтобы включить программу:
envdir /etc/bcron bcron-start envdir /etc/bcron bcron-update /etc/crontab /etc/cron.d
Первая команда запустит bcron в вашей системе, а вторая скажет bcron открыть и обновить файлы кронтаб и cron.d. Отсюда синтаксис создания новой задачи аналогичен как anacron, так и cronie. Например, я могу написать следующую строку, чтобы указать bcron запускать мой скрипт каждые 5 часов утра 1-го числа каждого месяца:
0 5 1 * * /my/monthly/script.sh
Читайте также: 5 инструментов для легкого создания собственного дистрибутива Linux
5. Хрон
Хкрон относительно неизвестен, но это не делает его менее полезным. На самом деле, он имеет несколько особенностей, которые делают его уникальным. Например, вы можете легко маркировать и систематизировать задания типа cron, управлять сетью компьютеров и файлами crontab ваших пользователей, легко создавать резервные копии и контролировать версии заданий типа cron.
Чтобы установить hcron, 4. bcrondeb">скачать файл .deb (или файл.rpm, в зависимости от вашей системы Linux) и установите его в своей системе.
Hcron сохраняет каждое событие в виде обычного текстового файла. Чтобы начать, просто создайте текстовый файл с помощью команды:
hcron-event /path/to/event-file.txt
В открывшемся текстовом редакторе вы можете заполнить подробную информацию о событии.
С помощью hcron можно делать еще много вещей, поэтому рекомендуется загрузить гид пользователя , чтобы лучше понять, как он работает.
6. Джоббер
Джоббер — планировщик задач, написанный на GO и более мощный инструмент, чем cron. Он содержит историю выполнения заданий со статусом, контролирует, будет ли задание запускаться снова после сбоя и когда оно выполняется, и получает уведомления о каждом неудачном запуске или только о заданиях, которые были отключены из-за повторяющихся сбоев.
Чтобы установить Jobber, вам необходимо убедиться, что GO имеет значение установлен в вашей системе. Затем введите команды:
cd /path/to/your/go/workspace go get github.com/dshearer/jobber make -C src/github.com/dshearer/jobber
После установки запустите Jobber командой:
sudo /usr/local/sbin/jobberd start
Чтобы создать задания, создайте файл с именем «.jobber» в своем домашнем каталоге и добавьте задание в следующем формате:
- name: #Enter the job name here cmd: #the command to run time: #as the same as cron format onError: #Stop | Backoff | Continue notifyOnError: #false | true notifyOnFailure: #false | true
Как видно из формата, он позволяет вам определить действия, которые необходимо предпринять в случае возникновения ошибок («Остановить», «Откат» или «Продолжить»), а также должен ли он уведомлять вас в случае сбоя.
После обновления списка вакансий используйте jobber reload
, чтобы заставить Jobber перезагрузить новый список.
В любой момент вы можете использовать jobber log
, чтобы просмотреть список последних запусков любых заданий.
Читайте также: Зачем и как р5. Хрон
л Sudoers в Linux
7. Макрон
Макрон — быстрая и инновационная программа планирования задач для Linux. Подобно программам, указанным выше, цель mcron — предоставить вам простой способ управления сценариями и программами, которые вы хотите запускать в своей системе. В отличие от вышеперечисленных программ, mcron также стремится пересмотреть планирование задач, реконструируя задания cron с нуля.
При этом установка mcron невероятно проста. Он доступен как в Debian, так и в Ubuntu, и вы можете легко получить его, выполнив следующую команду:
sudo apt install mcron
После этого вы можете начать использовать mcron в качестве планировщика. Для этого вам нужно сначала создать каталог, в котором mcron будет искать свои задачи:
mkdir /home/$USER/.config/ touch /home/$USER/.config/cron
Теперь вы можете отредактировать этот файл cron, чтобы он содержал все задания, которые должен выполнять mcron. В отличие от вышеперечисленных программ, mcron использует альтернативный синтаксис для планирования:
(job '(type '(range)) "command")
- Функция
job
сообщает mcron, что эта строка Лисп содержит задачу, которую необходимо запланировать. type
иrange
— это списки, содержащие информацию о времени для mcron. При этом тип управляет масштабом, в котором будет работать mcron, а диапазон определяет временной интервал для этог6. Джоббер
i>Наконец,command
— это строка, которая сообщает mcron, какую команду или программу необходимо запустить.
При этом я могу затем записать в свой файл.config/cron следующее, чтобы запускать скрипт один раз в час в течение трех часов в день:
(job '(next-hour '(1 4 8)) "my-script.sh")
Читайте также: Как использовать Sed в Linux для основных задач оболочки
Часто задаваемые вопросы
Можно ли использовать обычный синтаксис cron с mcron?
Помимо того, что mcron является инновационным планировщиком задач, он также стремится обеспечить обратную совместимость со старым синтаксисом cron. Таким образом, вы также можете использовать синтаксис, подобный crontab, для вашего файла.config/cron. Например, я могу написать следующую строку, чтобы сообщить mcron, что я хочу запускать скрипт один раз в день до полуночи:
0 0 0 * * /path/to/my/script.sh
Однако следует отметить одну важную вещь: запись запланированных задач таким образом не позволит вам использовать более обширные и гибкие функции mcron.
Можно ли запретить cron отправлять почту на мою учетную запись?
Можно запретить cron отправлять системную почту вашему пользователю. Для этого вам нужно будет отредактировать свой crontab и указать переменную MAILTO
со значением nobody
. Например, это отрывок из crontab, где я отключил системную почту:
MAILTO=nobody * * 1 * * /first/script/here.sh 0 0 * * * /second/script/here.sh
Зная это, вы также можете использовать этот синтаксис для перенаправления вывода crontab другого пользователя другому пользователю. Например, вы можете легко установить эту переменную в crontab пользователя root, чтобы получать выходные данные всех запланированных задач, которые он выполняет.
Какая альтернатива cron мне кажется лучшей?
Хотя это очень субъективный вопрос, хорошая альтернатива cron должна уметь делать все, что вам может понадобиться для вашего конкретного случая использования. Например, вы можете рассмотреть возможность использования более простых планировщиков задач, таких как anacron и cronie, если вы планируете использовать cron только для редких базовых задач.
С другой стороны, более гибкий и мощный планировщик задач, такой как mcron, позволит вам создавать сценарии и определять поведение самого cron. Однако использование mcron даже для простых задач может оказаться сложной задачей для непосвященного новичка.