Analysis
Overview
Backup has been tested recently and works, but with loss of appearance.
Task requirements
- Add trac appearence to the backup
Monthly backups
- Test if the previous backup contains all needed information for restoring
- Trac - wiki pages, settings, user accounts.
- Svn - data, settings, user accounts.
- Apache configurations
- Postgres databases.
- Build server configurations (Hudson)
- Testlink setup
- Add trac appearence to the backup
- Modify the script if needed
- Execute the scripts
- Write the image on a dvd (if weekly backups are performed)
Weekly backups
- Make weekly backups on a hard drive away from the office or on a DVD in a different location
Task result
Backup DVD(s) that are kept in different locations. Daily database backups, location should be listed here. If database is modified, backup before modifications.
Implementation idea
Use previous revisions of this tasks for locations of the scripts.
Related
How to demo
Explain what is done.
Design
- Add trac skin to the back up script adding the following:
## Trac, testlink and svn[[BR]] cp -R /home/scs/svn/ /home/scs/backup/all/$dirname[[BR]] cp -R /home/scs/trac/ /home/scs/backup/all/$dirname[[BR]] cp -R /home/scs/testlink/ /home/scs/backup/all/$dirname[[BR]] cp -R /home/scs/nexus/ /home/scs/backup/all/$dirname[[BR]] '''cp -R /usr/lib/python2.5/site-packages/ $dirname'''[[BR]]
- Verified the contents of the previous back up task.
- Run the scripts twice and store the 2 DVDs at separate places.
Implementation
- Previous back up contains all information needed for restore
- Trac Skinis added to the back up script according to the design phase
- The scripts were executed
- As a result two disks were burned
- They are kept in different locations
- one at the office
- one is kept in the Infrastructure Manager's home aka Pac
- The script is executed every Sunday at 3 a.m. ЕЕТ. However we burn the DVDs ones a month.
- Script
#!/bin/bash dirname="/root/backup/`date +%Y-%m-%d`" mkdir $dirname mkdir $dirname/scs mkdir $dirname/build mkdir $dirname/build/.hudson mkdir $dirname/s2s mkdir $dirname/apache mkdir $dirname/postgres ## Trac, testlink, svn and python site packages cp -R /home/scs/svn/ $dirname/scs cp -R /home/scs/trac/ $dirname/scs cp -R /home/scs/testlink/ $dirname/scs cp -R /home/scs/nexus/ $dirname/scs cp -R /usr/lib/python2.5/site-packages/ $dirname ## Apache virtual host cp /etc/apache2/sites-available/trac $dirname/apache/ ## PstgreSQL database pg_dumpall -U scs -c -d > $dirname/postgres/pgdump ## Build server copy() { for file in `ls "$1$2"` do if [ $file = 'Sophie' ] then file="Sophie 2.0" fi if [ `echo "$1$2$file" | grep /sophie2/ | wc -l` -eq 0 ] then if [ -d "$1$2$file" ] then mkdir "$dirname/build/$2$file" copy "$1" "$2$file/" else cp "$1$2$file" "$dirname/build/$2$file" fi else mkdir "$1$2$file" fi done } copy /home/build /.hudson/ ## S2S server cp -R /home/s2s/sophie2server $dirname/s2s tar -pczf "$dirname".tar.gz $dirname rm -Rf $dirname #mkisofs -r -o "$dirname".iso "$dirname".tar.gz #wodim "$dirname".iso
Testing
(Place the testing results here.)
Comments
Restoring the scs, s2s and apache are as simple as copying the contents of the back-up to the corresponding catalogs in the Server. The build restore is a bit more tricky because you have to checkout the repository in the $HUDSON_HOME/".hudson/jobs/Sophie\ 2.0/sophie2/trunk" before the server can run properly. ( you also copy the contents of the catalog into the $HUDSON_HOME) The postgres database can be restored with the "pg_restore -c -f $FILE" command executed as root. Finally the trac environment can be restored on the Sophie2 server in the same manner, but if we have to move the servers to another machine, then only the files for the trac look and feel should be copied all the other things should be installed properly.