Распределенный хрон

Я поддерживаю много серверов и имею следующие требования

  1. Запустите процесс Unix в указанное время
  2. Запустите процесс Unix во время загрузки и продолжайте его работу (на случай, если он умрет)
  3. Отключить запущенный процесс

Я сейчас использую cron, но для поддержания локального cron на разных серверах требуется много времени.

Существует ли механизм распределенного типа cron? Было бы неплохо сохранить конфигурацию "cron" в БД, чтобы я мог получить к ней доступ через веб-интерфейс.

5 ответов

Решение

Используйте систему управления конфигурацией, например, Chef или Puppet. Попросите сервер управления конфигурацией выдвинуть соответствующие конфигурации cron/Upstart/monit/ с различными узлами в зависимости от их ролей. Да, это, вероятно, больше инвестиций в настройку, чем изливание файлов crontab повсеместно вручную, но вы получите централизованную точку контроля над всеми серверами, которыми вы пытаетесь управлять.

Вы можете использовать puppet (централизованное программное обеспечение для управления конфигурацией) для управления вашими заданиями cron. Здесь есть некоторая документация http://docs.puppetlabs.com/references/stable/type.html (поиск cron по этой ссылке).

Похоже, ucron вполне соответствует вашим требованиям. Я сам не пробовал. http://siag.nu/ucron/ Может быть что-то?

Для обновлений cron вы можете разместить копию своих файлов cron на веб-сервере, и ваши машины будут обновлять свои файлы cron на основе содержимого файлов, хранящихся на веб-сервере. Это позволит вам делать обновления cron в одном месте. Недостатком является то, что все ваши компьютеры будут защищены так же безопасно, как и веб-сервер, поскольку любой, кто может манипулировать содержимым веб-сервера, может выполнять произвольные команды в любой из ваших систем.

  1. использование cron

  2. использование inittab

  3. Если управляется inittab -- редактировать inittab,
    Если управляется загрузкой системы (/etc/init.d & /etc/rc[0-6].d) - использовать chkconfig или же service

От man inittab

   respawn
          The  process  will  be  restarted  whenever  it terminates (e.g.
          getty).

Чтобы поддерживать их в многосистемной реплицированной системе, я могу думать только о чем-то rsync, Я не знаю, можно ли использовать что-то вроде NIS/YP. Возможно, вы ищете решение более корпоративного уровня.

Другие вопросы по тегам