Resnet Backup System

2009/05/15 - 2009/09/01

Resnet Backup Web Portal Index Screenshot Resnet Backup Web Portal Case Page Screenshot Resnet Backup Client Screenshot

Resnet is Northeastern's computer repair facility. At Resnet, we have the need to back up customer data temporarily in order to deep scan for hard drive problems, reformat computers, or send computers out for warranty. Simply mapping a backup share would not do because of all the extra meta information that our techs would have to keep track of manually, plus there is always the chance that a tech may accidentally or intentionally try to delete customer data. To secure and simplify the process for both the techs and the administrators, we designed a new system to back up data.

We made a custom backup script written in Bash (to be run in a custom version of Ubuntu) that maps an NFS share from our Ubuntu server, keeps track of all case meta information, and transfers data via rsync and gtkrsync. This client sends information to a web interface that stores both customer and technician data, timestamps, and statuses. After the data is transferred and the information is sent, the data is scanned with Symantec Antivirus for Linux and moved to a read-only Samba/NFS share so that there can be no tampering.

As of now, techs must manually restore data by mapping the network share and pressing the "restored" button on the web interface. Once a customer verifies that their data is successfully restored to their computer or external media, techs manually hit a "verify" button that flags the case to administrators as "ready to be purged". When a case is reviewed by an administrator and found to be in order, the administrator sets the case to purge. After close, a script is run on the data server that purges all files set to purge, meaning all data except the customer's Office and OpenOffice documents are deleted. These purged files are then kept for an additional 30 days in case of a customer emergency. Then, they are deleted.

My main areas of work on the system were on the web interface and running much of the bash backend. I contributed to the backend of the web client and tested and implemented the system.