2

ソース管理には Git を使用し、リモート リポジトリには Beanstalkapp.com を使用しています。Beanstalk を使用すると、sftp 経由で Rackspace Cloud Sites アカウントにデプロイできます (SSH はサポートされていません)。これは問題なく機能しますが、サーバー上で直接の知識 (ハッキング) なしではサイトが更新されないという保証が必要です。すべてのディレクトリ/ファイルのハッシュを実行して変更があるかどうかを確認できることはわかっていますが、何が変更されたかを特定するためのより堅牢な方法を探しています。私は次のアプローチを思いつきました。これは、より多くの経験を持つ人々によって改善できると感じています...

以下は、ローカル マシン上のシェル スクリプトにあり、cron 経由で 1 時間ごとに実行されます。

  • 新しい Git ブランチ「バックアップ」を作成する
  • 「git checkout backup」を使用してブランチに切り替えます
  • SFTP を使用してすべてのファイルをダウンロードする
  • ブランチにファイルを追加する "git add --all"
  • ファイルをバックアップ ブランチにコミットする "git commit -m 'backup process'"
  • 差分ブランチ「git diff master..backup」
  • 違いが見つかった場合は結果を電子メールで送信します。
  • master ブランチに戻る
4

1 に答える 1

0

これは興味深いアイデアで、ブランチを作成せずにこれを行うことができます。ローカル マシンで次の操作を行います。

  • 展開する予定のブランチをチェックアウトする
  • 現在デプロイされているファイルをサーバーからローカル マシンの一時ディレクトリにダウンロードします。
  • コマンドを実行しdiffて、チェックアウトしたファイルとダウンロードしたサーバー ファイルを比較します。

もちろん、ハッシュを生成する方が簡単ですが、誰かがサーバー ファイルにアクセスできれば、ハッシュを生成するプログラムを変更できます。

于 2012-11-05T18:43:48.520 に答える