image 1 image 2 image 3

Easy Setup

Setting up a backup is as easy as adding your drives and clicking backup.

Flexible

Use as many and as varied sized drives as you'd like. So long as you've got enough room, AnyBackup will span files across as many volumes from as many volumes as it needs to.

Convenient

AnyBackup let's you keep your backup drives offline until it needs them, so you can keep them disconnected until the very second you run a backup.

Shareable

Want to give your friends a family a peek at what's on your drives? Export your drive data to a file and send it along, anyone can install AnyBackup and view your export with Guest View.

Help Support AnyBackup

(or Buy Me a Beer)

What Is AnyBackup?

AnyBackup is a fairly simple backup application written in Python for the Windows platform. It's main goal is to keep two groups of files in sync, those two groups are "content" and "backup", where content are the files you want to keep copies of and backup are the files to keep in sync with content. You can add as many drives as your want for each group, they don't need to be the same size.

It's probably equally important to say what AnyBackup is not. AnyBackup is not an enterprise solution. It comes with no warranties. I've been using it for over three years for my backup needs and I've never lost data, but data loss could potentially occur through user error or bugs.

Why Was AnyBackup Made?

The main reason AnyBackup was made is that I have a 13tb Greyhole share and I was periodically attempting to back this data up to seven drives I had sitting around. I kept these back ups outside of Greyhole because I wanted the flexibility of having the drives in a Windows friendly format that I could use easily at friends' or family's houses.

This manual process quickly became untenable and was prone to human error. I began an extensive search for a program that could backup a large drive to several smaller drives. A few such pieces of software exist, but they were more about creating a single large file that would span several hard disks. None of which was particularly useful for my needs. I decided this would be a fun challenge to solve in my free time and hopefully build something useful in the process.

One of the key features I wanted was the ability to recognize drives beyond something so simplistic as drive letters. (It uses volume names + serial numbers.) I also wanted the program to give users flexibility in drive connectivity. My backup setup is very basic. I have a usb dock, and I have a stack of hard drives. I only hook up one backup drive at a time, and I wanted a program that would cater to this. AnyBackup splits file operations up by drive and asks users to connect a drive just once to finish the operations.


My low-tech backup solution. (Yes, I realize my naming abilities are questionable and that I should never name a child.)

The Origins

Somewhere in the bowels of my blog there's a link (who knows if it's still valid) to the first beta of AnyBackup. It was written in Perl. Why Perl, you ask? (Probably more like 'Why Perl??!!!') The main reason is that I had some basic backup scripts I'd started writing that were in Perl because Perl is, if nothing else, a handy scripting language. I figured I'd build off those for my backup program. It worked well enough, but it quickly became obvious that a more object oriented language would help, so I rewrote AnyBackup in Python ( there's a beta 2 download in the blog somewhere after the big rewrite ). Shortly after beta 2 I setup this code repository and I've been adding various tweaks and features ever since.

AnyBackup has evolved over time, over different languages and back ends, hopefully it will continue to do so as time goes on.

Future Plans

I'm actually very happy with AnyBackup from a stability, speed, and functionality perspective. Are there things that could be better? Sure. But by and large things work, and work well. My files back up reliably, AnyBackup intelligently sorts the files and prompts me to connect drives as needed. Visually the icons and flow are fairly consistent.

If you have feedback, please share. If I see an idea I like I'll try to find time to implement it. If you would like to get involved in the project and implement it yourself, I'm fine with that too!

Translations

I've recently been approached about translating AnyBackup. The answer is sure! If you speak two languages and want to translate, you can grab the gnutext file and provide translations. I'll be happy to incorporate them into the main build.

For more information on how the gnutext translations work, check out the documentation.

You can locally test your translations before sending them on if you wish, to do so you must have python installed. Take your po file and compile it into an mo file. Once you've got an mo file you can place it in the AnyBackup installation folder, the AnyBackup\anybackup\translations\messages_xx.mo (i.e. messages_de.mo). If all is well AnyBackup should use your new translation, provided your system locale matches the two digit code you used for the file name.

Translators

Credit where credit is due, below are the languages and translators that have contributed to AnyBackup.