WM×LI: Raspberyy Pi を Subversion のリポジトリサーバにして,systemd で自動起動するように設定する.
WM×LI: 【svnadmin dump】Subversionのリポジトリを別のサーバーに移行する.
WM×LI: Subversionで直前のコミットを取り消す.
今回はsvnsync コマンドを使用して,リモートで定期的にSubversion をバックアップを取るお話.
先日,WebArena IndigoでレンタルしているVPSをアップデート(apt upgrade)していたら,途中で突然停止し,その後アクセス不可,再起動不能になり,Subversionのリポジトリデータが全部吹っ飛んだので,やり方を調べた.
(最新のチェックアウトデータがあったので,最悪の事態は免れたが,リポジトリの履歴は全てパーになった...涙)
方法は以下の通り.
1. バックアップ用のディレクトリを作成
$ mkdir backup
2. 作成したディレクトリにリポジトリを作成
$ svnadmin create backup
3. hooks ディレクトリに移動して,設定ファイルをテンプレートからコピー
$ cd backup/hooks/ $ cp pre-revprop-change.tmpl pre-revprop-change
4. 設定ファイルの修正
pre-revprop-change(以下の通り,修正) ------------------------------ (修正前)exit 1 (修正後)exit 0
5. svnsync の初期化コマンドを実行(URLはsvn://など適宜,合わせる)
$ svnsync initialize file:///home/mirasuni/backup/ <バックアップするリポジトリのURL> Copied properties for revision 0.
6. svnsync の同期コマンドを実行(revision 1から始まり,最新リビジョンまで順にコピーされる)
$ svnsync synchronize file:///home/mirasuni/Subversion/backup/ ... ... ... Transmitting file data .. Committed revision 471. Copied properties for revision 471.
7. cron で毎日0時に同期コマンドが実行されるように設定する
$ crontab -e ------------------------------ 0 0 * * * /usr/bin/svnsync synchronize file:///home/mirasuni/backup
以上
0 件のコメント:
コメントを投稿