バックアップの目的でリモートgitリポジトリからローカルの読み取り専用ミラーに定期的にpullする簡単な方法、つまり単純なcronジョブのようなものがあるかどうか疑問に思っていますか?
理想的には、すべてのブランチとタグをプルしますが、マスター/トランク/ヘッドで十分です。
マスターgitサーバーが停止した場合に、手動でフェイルオーバーできるバックアップ場所があることを確認する方法が必要です。
まず、ミラーを作成します
git clone --mirror [email protected]:repo.git
次に、次のようなcronジョブをセットアップします。
*/1 * * * * gitbackup cd /backup/repo.git && git fetch -q --tags
これは毎分チェンジセットをバックアップします。たぶん、これをあまり頻繁に実行したくないでしょう。
Andrewが指摘したように、gitリポジトリのすべてのクローンは、リポジトリの完全なバックアップです。つまり、特定のマシンに何かを自動的にバックアップしたい場合は、バックアップサーバーにベアリポジトリを作成し、最初にデータを追加するために、バックアップするすべてのブランチをそのリポジトリにプッシュします。次に、「メイン」リポジトリに更新後のフックを設定するだけで、コミットがプッシュされるとすぐに、コミットがバックアップリポジトリにプッシュされます。 cronジョブやrsyncは必要なく、ほぼライブコピーです。