I know it seems that everyone is writing a 'backup' program these days. I started working on this a couple weeks ago and now my dream just keeps growing.

I have written a script that uses rsync to backup selected files and folders in my home directory to an external drive. It generates a backuplog and transfers items that have been moved or deleted to a directory labeled with the date and time of the backup. I have attached a .zip with the code.

What I would like to end up with is a gui much like Grsync. Giving the user an interface to:
1. build the exclude and include list as desired
2. set rsync flags
3. set the source and backup directories
4. turn on or off the function that removes hidden items from the increments directory on the backup media
(MORE TO COME I am sure)

Also is there a way to force a shell prompt when setting the script up as a cron job in Linux?

thanks
coffeebox

Recommended Answers

All 10 Replies

Maybe instead of using rsync, you can implement your own crossplatform version of rsync. You could also multithread is and/or use the multiprocessing module to provide multiple CPU support so copying can go much faster.

Another good idea is to make a daemon out of it, and have it backup to a certain source at given times every so often. Consider using wxpython for GUI, and docking the daemon on the system tray. It would be pretty sweet.

Maybe instead of using rsync, you can implement your own crossplatform version of rsync. You could also multithread is and/or use the multiprocessing module to provide multiple CPU support so copying can go much faster.

Another good idea is to make a daemon out of it, and have it backup to a certain source at given times every so often. Consider using wxpython for GUI, and docking the daemon on the system tray. It would be pretty sweet.

This would be cool, maybe I can evolve it as I go. But right now this is really my first Python program. If you don't mind helping out I would appreciate it. Like I said at this point I would like to stick with rsync and get my hands around it, then later move to the cross platform idea.

I will do some looking around, I think I have seen some discussions about rsync being used on Windows, and since Mac are realy running shiny Linux/BSD it should work there to.

thanks for the input
coffeebox

If you set up some sort of source code repos I'd be happy to help, otherwise I could just post some code here or PM it to you.

... since Mac are realy running shiny Linux/BSD it should work there to.

Mac OS X is based around Darwin UNIX, a version of UNIX that derived from NEXTSTEP, which derived from BSD. OS X Contains no BSD code nor NEXTSTEp code anymore.

If you set up some sort of source code repos I'd be happy to help, otherwise I could just post some code here or PM it to you.

I have setup a repo herehttp://code.google.com/p/savethehouse/. This is my first time doing this please let me know if I did it correctly.

coffeebox

I'll check it out. Maybe help out with the multiprocessor support.

I'll check it out. Maybe help out with the multiprocessor support.

Sounds good ov3rcl0ck, I did some changes to the structure of the code. You can find the most recent code under Changes on the host sight.

I do have one question though, I am starting to work on the GUI using Tkinter, I just noticed that when I import the main code body it is run. This seems odd. Shouldn't the import just set up the code for use, calling and such?

Anyway for the time being I will leve this import out as I do the low level GUI building.

Thank you for the offer to help.
coffeebox

TKinter doesn't give a very native look or feel, I recommend WXpython, it can use GTK themes, or have a windows look.

But if you insist on using TKinter I can help you with that also, but I recommend that you check this out http://www.wxpython.org/tutorial.php

Right now I'm working on a python based, crossplatform(and portable) remake of rsync. It will give the ability to back up permissions, owner, zip/gzip/tar the files for more compact storage, and provide multiprocessor support.

TKinter doesn't give a very native look or feel, I recommend WXpython, it can use GTK themes, or have a windows look.

But if you insist on using TKinter I can help you with that also, but I recommend that you check this out http://www.wxpython.org/tutorial.php

Right now I'm working on a python based, crossplatform(and portable) remake of rsync. It will give the ability to back up permissions, owner, zip/gzip/tar the files for more compact storage, and provide multiprocessor support.

Are you hosting the code anywhere that I may take a look at it? Sounds allot like what I would like this project to end up being. I started playing with WXpython last night and am starting to get it.

I'm using codepad.org to host my code so I can work on it at home, school or where ever theres a computer.

Check it out:
http://savethehouse.codepad.org/

All my pastes are currently private, so you won't see much, but I'll be opening it publicly soon.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.