複数のユーザーの複数の更新によって引き起こされる問題を回避するためにcrontabを効果的に管理するにはどうすればよいですか?

複数のユーザーの複数の更新によって引き起こされる問題を回避するためにcrontabを効果的に管理するにはどうすればよいですか?

更新する多くのユーザーを含むcrontabがあります。問題は、このため誰がクローンジョブをどのように変更したのか分かりにくいという点だ。

もともと私は以前に保存したバージョンのcrontabを実行するスクリプトを作成し、少なくとも変更を確認しdiffたかったのですが、標準的な解決策があるかもしれません。 crontabを管理する最良の方法は何ですか?

ベストアンサー1

破壊

私はcrontabの内容をアワビ制御下に置き、そのユーザーにアクセス権を与えますsudo。特に、私はsudoSubversionで頭をつかみ、その特定のユーザーの最新のcrontabとしてインストールするコマンドにアクセスすることを許可します。これにより、以下が提供されます。

  • 誰が何をしたのかについての監査証跡
  • 問題が発生した場合は、古いcrontabファイルにロールバックする機能
  • オペレーターがこの特別なアカウントにあまりにも多くの権限を持っていないことを防ぐ

あまりにも複雑に見えるかもしれませんが、小さく分けて説明すると、それほど複雑な部分はありません。

マルチタスク

別の方法は、次のツール/スクリプトを使用することです。マルチタスク。このツールを使用すると、crontabエントリ以外のcrontabデータを管理できるため、誰が/いつこれらの変更にアクセスできるかをより効果的に制御できます。

Subversionを使用した例

SVNリポジトリが設定されていると仮定すると、sudoユーザーは次のことができる項目を作成できます。

$ sudo deploy_app_cron.bash

このスクリプトの内部構造は、次のことができます。

svn cat file:///home/saml/svnrepo/app_cron_data.txt | crontab -u saml -

文書の内容app_cron_data.txt:

$ svn cat file:///home/saml/svnrepo/app_cron_data.txt
*/5 * * * * /path/to/job -with args"

ループの使用例

したがって、userAはcrontabエントリを更新しようとします。まず、次のようにします。

$ cd $HOME/somedir
$ svn co file:///home/saml/svnrepo/ mywksp
A    mywksp/app_cron_data.txt
$ cd mywksp

今、彼らはcrontabファイルをいくつか編集し、app_cron_data.txt完了したらリポジトリにコミットします。

$ svn commit -m "some msg.." app_cron_data.txt

これらの変更をデプロイするには、次のsudoコマンドを実行する必要があります。

$ sudo deploy_app_cron.bash

引用する

おすすめ記事