Библиотека сайта rus-linux.net
Четыре полезные альтернативы Cron для Linux
Оригинал: 4 Useful Cron Alternatives For LinuxАвтор: Damien
Дата публикации: 30th January 2015
Перевод: Н.Ромоданов
Дата перевода: март 2015 г.
Те, кто знаком с системой Unix, также должны быть знакомы с приложением cron, которое позволяет планировать и задавать автоматическое выполнение задач, которые затем будут выполняться самостоятельно. У нас даже есть статьи, где рассказывается о том, как начать использовать cron и crontabs. Тем не менее, приложение cron не является совершенным, поскольку оно требует, чтобы система работала 24 часа в сутки. Если у вас есть привычка в ночное время выключать компьютер, а в cron задача запланирована так, чтобы она должна выполняться тогда, когда вы спите, то задача выполнена не будет. К счастью, есть несколько вариантов, альтернативных cron, которые могут сделать работу лучше, чем cron. Давайте их рассмотрим.
1. Anacron
Anacron является планировщиком, который периодически выполняет команды точно также, как и cron. Различие лишь в том, что для него не нужно, чтобы компьютер всегда работала. Вы можете запланировать выполнение задачи в любое время. Когда компьютер выключен, то задание будет выполнено в следующий раз, когда вы включите компьютер.
Для начала просто установите в вашей системе приложение anacron. Оно есть в большинстве менеджеров пакетов. Для установки приложения в Ubuntu используйте следующую команду:
sudo apt-get install anacron
Anacron работает аналогично cron. Вы можете добавить свое задание в файл /etc/anacrontab.
Синтаксис добавления задания следующий:
period delay-after-computer-start job-identifier command период задержка-после-того,-как-компьютер-будет-запущен идентификатор-задания команда
Например, чтобы каждый день запускать скрипт резервного копирования, вы можете добавить следующую команду:
1 15 cron.daily /bin/sh /home/damien/backup.sh
Недостатком anacron является то, что его помощью можно планировать только ежедневное, еженедельное и ежемесячное задание, Вы не можете использовать его для почасового или поминутного выполнения заданий.
2. fcron
Приложение fcron лучше, чем cron и anacron. Оно не требует работы компьютера в режиме 24×7 и позволяет задавать почасовые и поминутные задания.
Единственный способ установить fcron - это загрузить файл с исходным кодом и скомпилировать его самостоятельно.
- Скачайте отсюда файл с исходным кодом.
- Распакуйте архив. Откройте терминал и перейдите в каталог с распакованным архивом.
- Выполните следующие команды:
./configure make sudo make install
Во время установки вам будет задано несколько вопросов и на каждый из них можно смело отвечать "Y" (да).
Чтобы приступить к созданию задания fcron, просто наберите терминале fcron -e.
Синтаксис приложения fcron похож на синтаксис приложения cron:
minute hour day-of-month month day-of-week command-to-be-executed минута час день-месяца месяц день-недели команда,-которая-должна-быть-выполнена
Но в нем гораздо больше параметров настройки, чем в cron, например, можно создавать задания, которые будет выполняться в определенном временном интервале.
Для тех, кто предпочитает использовать графический интерфейс, можно предложить приложение fcronq.
3. Hcron
Приложение hcron не очень известно, но это не делает его менее полезным. На самом деле, оно поставляется с несколькими функциями, которые делают его уникальным. Например, вы можете помечать задания именами и группировать задания cron, управлять сетью компьютеров и пользовательскими файлами crontab, делать резервные копии и создавать задания cron для задач, использующих системы контроля версий. Единственный недостаток в том, что это приложение не обновлялось с 2010 года.
Чтобы установить приложение hcron, скачайте файл .deb и установите его в вашей системе. Для дистрибутивов, в котором используется формат rpm, можно конвертировать файл deb в формат rpm.
В приложении hcron все события хранятся в виде простого текстового файла. Для начала, создайте текстовый файл с помощью следующей команды:
hcron-event /path/to/event-file.txt
В текстовом редакторе, когда тот откроется, вы можете указать детали события.
В приложении hcron есть много различных возможностей, поэтому для того, чтобы лучше понять работу этого приложения, желательно скачать инструкцию.
4. Jobber
Jobber является планировщиком задач, который написан на языке 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: #Укажите имя задания cmd: #Команда, которая должна быть запущена time: #такой же самый формат, как в cron onError: #Stop | Backoff | Continue notifyOnError: #false | true notifyOnFailure: #false | true
Как видно из описания формата, приложение позволяет указывать действия, которые должны выполняться в случае возникновения ошибок ("Stop", "Backoff" или "Continue" - "Больше не выполнять", "Отложить выполнение" или "Продолжить"), а также указывать, будет ли приложение сообщать вам о том, что возникла проблема.
После того, как вы обновите список заданий, используйте команду jobber reload с тем, чтобы новый список загрузить в Jobber.
В любой момент можно использовать команду jobber log для просмотра списка последних запусков любого задания.
Заключение
Cron широко доступен и прост в использовании, но когда он работает не так, как вам это необходимо, то, возможно, лучше поискать для него замену. Приложения, альтернативные cron, о которых мы рассказали выше, являются более мощными, чем cron, и из должно быть достаточно для ваших потребностей. Если вы знаете о других вариантах замены cron, которые выше не упомянуты, не стесняйтесь, дайте нам знать о них в комментариях.