web-dev-qa-db-ja.com

分散cron

私は多くのサーバーを維持しており、次の要件があります

  1. 指定された時間にUNIXプロセスを実行します
  2. 起動時にUNIXプロセスを実行し、実行を続けます(死んだ場合)
  3. 実行中のプロセスを無効にする

現在cronを使用していますが、ローカルcronを別のサーバーで維持するには時間がかかります。

分散cronのようなメカニズムはありますか? 「cron」設定をデータベースに保存しておくと、Webインターフェイスから同じものにアクセスできるようになります。

2

Chef または Puppet のように、 構成管理システム を使用します。構成管理サーバーに、役割に応じて、適切なcron/Upstart/monit/whatever構成をさまざまなノードにプッシュします。はい、手動でcrontabファイルをあちこちに吐き出すよりも、これを設定する方がおそらく投資の方が多いでしょうが、管理しようとしているすべてのサーバーを一元管理することになります。

4
cjc

Cron更新の場合、cronファイルのコピーをWebサーバーに配置し、Webサーバーに保存されているファイルの内容に基づいてマシンにcronファイルを更新させることができます。これにより、1か所でcronの更新を行うことができます。欠点は、Webサーバーのコンテンツを操作できる人なら誰でも、任意のシステムで任意のコマンドを実行できるため、すべてのコンピューターがWebサーバーと同じくらい安全になることです。

0
chuck
  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のようなものが使えるかどうかわかりません。よりエンタープライズレベルのソリューションを探しているかもしれません。

0
RedGrittyBrick

Puppet(一元​​化された構成管理ソフトウェア)を使用して、cronジョブを管理できます。ここにいくつかのドキュメントがあります http://docs.puppetlabs.com/references/stable/type.html (このリンクでcronを検索してください)。

0
NoNoNo

Ucronはあなたの要件にかなりよく合っているようです。自分で試したことはありません。 http://siag.nu/ucron/ たぶん何か?

0
Ztyx