ようやくここまできた。
以前も紹介したようにsubversionレポジトリのバックアップを行う場合はsubversionの付録として一緒にインストールされるhot-backup.pyを使う。ただ、FreeBSDの場合、portsで入れるとデフォルトで/usr/local/share/subversion/backup/hot-backup.pyという変な場所にあるので、予め使いやすい場所にコピーしておく。今回はバックアップファイルをサーバへ送るアカウントのbinに突っ込んだ。
ものすごいやっつけスクリプト。レポジトリの数が増えたらfor文使うなりしないとダメだねぇ。
#!/bin/sh . ~/.keychain/`uname -n`-sh echo 'try to create hot copy...' ~/bin/hot-backup.py /home/svn/repos/proj1 /home/backup/repos_hotcopy ~/bin/hot-backup.py /home/svn/repos/proj2 /home/backup/repos_hotcopy echo 'try to create archive and send to backup server...' tar czf - -C /home/backup repos_hotcopy | ssh backup@192.168.xxx.yyy "cat > \ /mnt/share/backup/lab-server3.repos.`date +%Y%m%d`.tgz" echo 'try to delete hotcopy and archive...' rm -rf /home/backup/repos_hotcopy/proj1-* /home/svn_backup/repos_hotcopy/proj2-* echo 'all complete!'
バックアップサーバに繋がらなかった場合も考えなきゃイカンのだが、まぁまだいいや。あとはこのスクリプトをcronに登録してあげればok。