Наши партнеры

UnixForum





Библиотека сайта 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 - это загрузить файл с исходным кодом и скомпилировать его самостоятельно.

  1. Скачайте отсюда файл с исходным кодом.
  2. Распакуйте архив. Откройте терминал и перейдите в каталог с распакованным архивом.
  3. Выполните следующие команды:
    ./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, которые выше не упомянуты, не стесняйтесь, дайте нам знать о них в комментариях.