SVNを作成
svnadmin create repoName
バックアップの作成
svnadmin dump repoName > repo.dump
バックアップのリストア
svnadmin load repoName < repo.dump
ファイルを丸ごとコピーしてもいけるっぽいけど、環境によってはNGっぽいのでdumpを使う事にしました。
バックアップをする時は、必ずsvnのユーザで実行する事!rootはだめ!
dump した時にエラーが出る場合は repoName/db/log* のファイルが壊れている事があります。
だからと言って log* ファイルは結構大事なファイルなので、さくっと消してはいけません。
そんな時にはリカバリコマンド
svnadmin recover repoName
もちろんこれもsvnユーザで。rootユーザでやってリポジトリ壊れたのはいい思い出・・・
cronで常用バックアップしたい場合は svn-backup-dumps.py を使うと便利!
SVN1.4以降なら一緒にインストールされてます。
ここに詳しい事が乗っています。
こんな感じのスクリプトを作って
DUMP="/subversion-1.4.2/tools/server-side/svn-backup-dumps.py"
BACKUPDIR="/svnbackup/"
for var in `ls -F /svn/repos|grep /`
do
BKSVN="$BACKUPDIR$var"
mkdir $BKSVN
$DUMP -c 10 $var $BKSVN
done
crontab に設定
05 4 * * * root /root/svnbackup.sh
これでrepos以下にあるリポジトリ全部を /svnbackup へバックアップしてくれます、リポジトリが増えても安心!
0 件のコメント:
コメントを投稿