Runtime Backup Manager

Automating Server Backups with Runtime Backup Manager

Prashant

--

It is a free open-source utility to automate backups of databases & folders with option to configure e-mail alerts to admin.

It is needless to state how important it is to have a backup strategy for your servers. Every server administrator has to go through the tiring job of setting up backups which includes writing scripts, scheduling tasks, setting up alerts and so on.

I have also seen cases where the backup jobs are integrated into the applications, for e.g. setting up an API or a URL as part of an app, which backs up databases or folders, and the API or URL is called periodically using Task Scheduler. Although this works, but it is not an ideal approach as it violates the principle of ‘Separation of Concerns (SoC)’.

As a small business owner, I manage multiple things including writing code, managing servers and implementing backup strategies. As the number of servers grew in our company, it became highly unstructured how we manage server backups. We had to undergo multiple steps for each server that involve scheduling different scripts, installing supporting libraries and configuring email settings for sending alerts on success/failure of jobs.

This made me think of building a software that can automate these tasks and provides a simple UI to configure all the settings in one place. Since I already knew how to backup, store and send alerts, it took me relatively less time to put together everything in a .NET WPF application and within a week I was ready with a prototype. As this project was not intended to be sold, I decided to make it open source by hosting it on GitHub.

How it works?

First of all, this is a .NET WPF application built on .NET Framework. Yes, its not .NET Core, still in 2021 :(.

You can use it on any Windows machine that has .NET Framework 4.6 or higher installed. Usually Windows Servers are expected to have that, so no additional setup is expected.

It supports three types of backups:

  1. MSSQL Server Database (BAK)
  2. MySQL Server Database (SQL Dump)
  3. Folder Archives (ZIP)

You can designate a local folder on the server to store the backups initially. You can then configure to push the contents of this local folder to Amazon S3 bucket at a set time every day. To avoid piling up of backup files on local storage, you can also choose to automatically delete backup files after a certain number of days or deleting them immediately after back up to S3 is successful.

E-Mail Alerts

Once you setup and install the software, it works on its own. But you would always need to stay informed about the results of backup jobs to ensure peace of mind. For e.g. you may want to be notified if a backup job failed. To serve this purpose, you can configure the application to send automated e-mail alerts to a designated recipient. (Note that you have to provide your SMTP details to send e-mail alerts).

The application can send e-mail alerts on following events:

  1. Successful backup on local disk
  2. Failed to backup on local disk
  3. Successfully pushing a file to S3
  4. Failed to push a file to S3

Logs

The application also maintains logs of each backup event with relevant troubleshooting information (from exceptions) in case of failure to finish a job. The logs are saved in simple text file and can also be viewed on the UI for further investigation.

Road Ahead

As I mentioned before, it is an open source project hosted on GitHub, you are welcome to contribute to it. I plan to implement following features in days to come:

  1. Backup to Azure
  2. Backup to Google Drive & Dropbox
  3. Send a daily e-mail digest of past 24 hour logs

If you have more suggestions, please let me know. If this utility can help your business, feel free to use it. And don’t forget to tell your friends and colleagues, who may also be benefitted by it.

--

--

Prashant

Finance guy who fell in love with technology and switched careers in early 30s. Follow me: https://twitter.com/prashantio Business URL: https://runtime.one