Create local svn repository with name “my_local_repo”
1 |
$ svnadmin create my_local_repo |
prepare local repo
1 2 |
$ echo "#!/bin/sh" > hooks/pre-revprop-change $ chmod 755 hooks/pre-revprop-change |
initialize local copy
1 |
$ svnsync init file:///path/to/my_local_repo http://from.server/from_repo |
first run must be interactive to input and save your login and password
1 |
svnsync sync file:///path/to/my_local_repo |
write script to run it in cron
backup_svn_script.sh:
1 2 3 |
#!/bin/bash svnsync --non-interactive sync file:///path/to/my_local_repo tar -C /path/to/ -czf /path/to/backup/$(date +"svn_%Y_%m_%d_%H_%M_%S").tar.gz my_local_repo |
it produce files like “svn_2012_09_07_01_34_01.tar.gz” in your backup directory
Now you can add task to cron. Execute:
1 |
$ crontab -e |
and add following line to run backup at 4:00 (4 a.m.) every day
1 |
0 4 * * * /path/to/backup_svn_script.sh |
This method is not disk space efficient, but very simple.
Sources:
using svnsync
installing subversion server in ubuntu