During the last week I had the possibility to work on anything I wanted, Novell’s hackweek is so cool
I decided to dedicate myself to an idea that has been obsessing me since a long time. Last December my brand new hard disk suddenly died, making impossible to recover anything. Fortunately I had just synchronized the most important documents between my workstation and my laptop, so I didn’t lose anything important. This incident make me realize that I should perform backups regularly and I immediately started looking for a good solution.
Personally I think that doing backups is pretty boring so I wanted something damned easy to setup and use. Something that once configured runs in the background and does the dirty job without bothering you. Let’s face the truth: I wanted Apple’s Time Machine for KDE.
After some searches I realized that nothing was fitting my requirements and I decided to create something new: kaveau.
What is kaveau?
Kaveau is a backup program that makes backup easy for the average user.
As you will see while coding/planning kaveau I made some assumptions and so only few things are configurable. I really think that sometimes “less is more”.
What does kaveau?
Current features:
- it performs backups to an external storage device: I don’t think it will ever store backup data on a remote host. If you want to do that just use some good project like Backup pc.
- it backs up the complete home directory of the user: storage is cheap and average users (like me) keep everything inside their home directory ( but it’s possible to exclude some directories from the backup).
- it performs incremental backups.
- the backup data are neither compressed nor stored in fancy formats: in this way you can plug your external disk into another machine and access your data without additional work.
- backups are performed automatically every hour (of course only if your external disk is plugged).
- notification messages are shown if your backup is older that a week.
More enhancements are coming…
What technologies does it use?
Backups are performed using rdiff-backup because it’s damned easy to use, well tested (it’s used also in production environments) and packaged by all distributions.
The awesome solid library is used for interacting with the external disks is super easy.
Status of kaveau
I have been working on kaveau just for five days, so there’s still a lot of work to do.
A screenshot tour will give you the right idea of its status.
- First run – external storage device attached
- Backup wizard – page 1
- Backup wizard – page 2
- Backup wizard – final page
- Backup operation in progress
- Backup completed
Right now the code is available on this git repository but I don’t recommend you to try it (unless you want to find and fix bugs
).
I would really appreciate:
- feedback about the user interface (right now it looks too much like Time Machine).
- icons: it would be great to have a desktop icon and some system tray icons (contact me for more details).
- new code, bug fixes, code reviews, hints,…





















Entries (RSS)
Great project.
Only thing I don’t get is why would a KDE developer decide to use proprietary github, when KDE is moving to FOSS gitorious??
An easy backup program has long been overdue in KDE, and there is a big thread in the brainstorm section of the KDE forums ( http://forum.kde.org/viewtopic.php?f=83&t=39107 ).
While I personally love rdiff-backup, I don’t think it is optimal for a general use. People usually use vfat-formatted external disks, and rdiff-backup does not work properly on them. In particular files bigger than 4gB will not be backup up correctly (“File too large”). I have not found any better solution, though.
I plan to show a warning when the file system of the external storage is something like vfat. Maybe also format the device to ext3.. who knows
Nice! We need a simple storage solution like this. Once it is stable, it should be part of KDE. Not having a backup solution available in this day and age is not acceptable for a dekstop environment.
If you haven’t, you should probably talk to Trever Fischer who is working on automounting. http://wm161.net/2009/07/20/automounting-in-kde4 The features he wants to implement includen things like automatically executing programs when a certain device (UUID!) is plugged in. Have a look at the bug report he links in his post.
Thank you very much for your efforts, they are highly appreciated!
mutlu
cool tool, i have the same setup using some cheap scripts. Just one little hint, rdiff-backup was unmaintained last time I looked and I decided to use just plain rdiff, which does everything needed as well and is maintained. Also rdiff-backup has this 4gb problem (dvd images?)
Latest version or rdiff-backup has been released on March 16th 2009, I don’t expect this kind of project to have an elevated activity. But I’ll try to figure out if it is discontinued.
I didn’t want to use rsync because I really hate to waste my time reading its man page. The nice thing about rdiff-backup is that the default options are already good for the average users (like me).
sorry, i confused things … it’s the backend of rdiff-backup that is unmaintained. It’s called librsync and last release was in 2004 and a patch for the 4g problem was posted on sourceforge in 2006 … but still no new release.
here is what my script looks like:
rsync -a –progress –exclude-from=backup-exclude –link-dest=${TARGET_DIR}_latest ${SOURCE_DIR} ${TARGET_DIR}_$(date +%Y-%m-%d)
rm -f ${TARGET_DIR}_latest
ln -s ${TARGET_DIR}_$(date +%Y-%m-%d) ${TARGET_DIR}_latest
the file “backup-exclude” is a file with entries like this:
/.thumbnails/
what it does is that it will check if a file already exists in the previous backup, if so, it will create a hard link, otherwise the file is copied
the option -a tells it to preserve access right, times etc.
Oh I didn’t know it relied on librsync, that’s bad!
Thanks for your script. sounds like I’ll have to switch to rsync.
hmm, it’s
“rsync -a –progress –exclude-from=backup-exclude –link-dest=${TARGET_DIR}_latest ${SOURCE_DIR} ${TARGET_DIR}_$(date +%Y-%m-%d)”
the double “-” (“–”) got converted into single “-” by your blog system
just in case you don’t know it, there is another backup solution for kde :
http://kde-apps.org/content/show.php/luckyBackup?content=94391
(highest rated app from kde-apps.org !)
The goals and architecture seem a bit different, but there might be area where you can collaborate.
Your “time machine” idea using an external disk looks promising
@Jon I prefer gitorious too but github has some advantages like the visibility and some features like the network graph and hooks.
Many great open source software are hosted on proprietary sites like sourceforge, github and launchpad (which is not proprietary anymore).
One nice thing with Git is you can have a clone of his project on Gitorious if you want, just pull and push.
Backup programs are nice, there is plenty of them and an having an other one well integrated with KDE is really great ! But what we really lack of is “recovery” programs, ie. programs that helps you reading your backups easily. Apple’s Time Machine is really great for that because it allow you to browse your “backuped” data through time and space (ie. directories). Is there any solution to do the same thing on Linux ? Is there any plan to do things like that in KDE ?
Right now kaveau doesn’t provide a good recovery mode, it will surely have something good and easy in the near (I hope) future. Right now I just want to focus on the backup part.
@shamaz: ok but luckyBackup UI is a total mess! Probably it is very powerful but, as you say, goal is different (and I think Kaveau has much more possibilities)
@flavio: a couple of suggestions:
- in the “Backup wizard – page 1″ use a better view for the item list. Something with the icon of the device on the left, size in a more human readable format, a bar showing how much free/used space there is on the device.
- why are you asking the device in the 1st step and then the directory (using the mounted path) in the 3rd. It should be integrated in one step I think and the local mountpoint should be hidden in the default view (with a Details… button to show it)
Thanks for your feedback.
I’m already planning to implement some of the features you mentioned (like showing the disk size in human format and reporting the free disk available).
Great initiative!
I definitely think the “less is more”-approach is the way to go in this case. Some suggestions:
- Less clicking while setting up. Join several of the steps in the same window
- Dolphin integration would be really neat. I’m not sure how exactly, but it would be nice to be able to browse in history.
- I know you’ve decided not to add remote backups, but I really disagree with that. This is the one big problem with all those open source OS X backup utilities, not a single one can backup over ssh. Please, at least as an advanced feature, it’s enormously useful. If you still think it’s a bad idea, then at least consider this: Allow the user to browse zeroconf announced disks (sftp or ssh), and add a path under any such “device” for backup.
Again, thanks for starting this much needed application!
Do you have an idea of the feature comparison versus something like Simple Backup? I know Simple Backup is GTK, but it works and allows remote hosts (the big pro for me). It also has a scheduler that lets me run it automatically — a requirement for me to use any backup software.
[...] Flavio Castelli, ha avuto la magnifica idea di cercare di colmare questo gap dando alla luce kaveau, un sistema di backup integrato in KDE che rispecchia le peculiarità sopra citate e che sfrutta [...]
Great (GRANDISSIMO) project.
IMHO, a good idea can be to add the possibility to make a backup specific for PIM (kmail, kontact, etc.. )
giuseppe
Interesting project
[...] faire de la sauvegarde sous kde avec #kaveau http://flavio.castelli.name/kaveau-easy-integrated-backup-solution-kde [...]
This is great! I have been recently looking for backup solutions for my KDE desktop and this might be just what I needed, great app for a week of work!
Ideas:
- Use KDE’s notifications to show the progress of the backup solution
- Allow the user to format? the “backup to” drive with their preffered format (Ext3… or… NTFS) in case that vfat can’t handle the filesizes… although this could be done by hand…
Looking good!
Just about the name: For KDE3 there was Keep (http://jr.falleri.free.fr/keep/wiki/Home) which worked quite nice (and is also based on rdiff-backup) but was never ported to KDE4 and is unmaintained today. I think Keep is the ultimate name for a KDE backup app, better to remember than Kaveau (ka-voo?) and package names in the distros are reserved already
I know the keep project, in fact I have also reused some of its code.
Talking about the name: “kaveau” comes from “caveau” an French term (used also in Italian) for “vault”.
Will it work with already existing rdiff-backups? I already use rdiff-backup for my regular backups and would like to start using kaveau for this task – if it works just like that with existing rdiff-backups.
It should work, assuming you are already doing backups of your complete home directory. As you have seen you cannot change the source directory (and I think it will never be possible). Of course don’t blame on me if you loose your backup
BTW, I’m seriously thinking about moving to rsync instead of using rdiff-backup since the last one is relying on an discontinued library with some bugs.
Hi! Just one more suggestion. I am using a script similar to schmeisser’s only I put it as the command to run for a solid predicate. This way, when I plug my backup disk, the device notifier shows me a “Make a backup” option. I also have a ‘backup complete’ notification when the backup ends. I haven’t yet figured out how to make it show as a tray job notfication but I can send you what I have now and you figure it out ;). By the way, does anyone know how to get decent progress information out of rsync?
Kaveau is already showing system notifications when the backup starts and is completed.
I don’t know if I’ll add a notification showing “make a backup now” when the disk is plugged. When the disk is plugged I check the last time backup and I perform a new one if needed.
What about “Back In Time”? Seems like you are aiming for something similar.
I have seen it and I have avoided it because it doesn’t provide simple management of external devices.
KDE4 introduces some new cool technologies. I think it would be counter-productive to ignore them just for having a cross-platform solution (like this project is doing).
That’s why I decided to start something new.
Well, I quite understand that this is your own baby with your personal objectives but contributing to “Back In Time” (or another) adding what you expect from a KDE app would be more effective. I mean there are several backup apps: http://www.kde-apps.org/index.php?xcontentmode=272 mainly developed by one person (and usually those give up after a great 6 month free-time work)
Anyway, good luck! It looks promising!
I really understand your point of view.
In fact I didn’t really want to start a new project. In the last 7 months I have looked and tried a lot of existing solutions (also gnome ones) but I never found something matching my requirements.
Also I would have preferred to contribute to an existing project instead of creating another backup program. Unfortunately there’s no KDE-focused program approaching the backup problem with a minimalistic philosophy. I don’t think the maintainer of one of these projects would like to merge patches removing options/features
man.I realy need it !
There is also another backup tool for KDE:
Back in Time
http://backintime.le-web.org/
I know about this program, take a look at comment #19.
Hi Flavio,
This looks really promising, especially because of the tight KDE integration (which Back In Time lacks) and simple interface (which LuckyBackup lacks). Using Solid is a really good idea!
Currently you have a few options, but you aren’t speaking of the configuration. From your screenshots I see you have filter options (which I really like), so it seems you have the ability to control what is backed up and what not? I’d like to backup some folders, but not my complete home directory. I’d even like to back up just some folders inside my homedir, not all of them. Are these possibilities for the future?
Because selecting your own folders can become really advanced when thinking of the nepomuksearch:/ KIO slave. You could e.g. tag some folders and files with “backup”. Kaveau makes a back up from the folder nepomuksearch://backup and you have a very excellent backup utility: simple but able to do advanced things where backup software is nowadays not able to do such things.
Another one: an every our backup is way too much for me. Daily or something is (for me) a lot better. So this would be a really good configuration option as well I think. KDE users are used to have a lot of configuration options, but still having good default options and a clean interface to configure them.
In my case, I have a laptop which I want to backup on a daily base when I come home. My usecase scenario is I enter my home, start my laptop and it automatically mounts a server’s folder because I’m in my home network. This automounting is detected through Linux and such way Kaveau can do it’s backup (just like you plugin your usb hdd).
Configuring Kaveau with above mentioned options is a thing many of us would like to see, but is “hidden” behind a dialog you do not need to use. But I have said enough to let you think about it I assume. Keep up the good work!