Ocean Mist

16 Dec 2009

Restoration: Start with the basics

Posted by astromme

TimeVault has been busy taking snapshots of my data. But what good is that when I have no way of restoring files and folders from those backups? With that in mind I hacked together a quick way of restoring specific files and folders. Now provided with TimeVault are dolphin/konqueror service menus that allow for the following:

Remember that service menus are very simple. At the moment this means that you can attempt to restore files that weren’t included in the backup. This will fail (obviously) but it will tell you that it failed. You can also attempt to restore files at times older than the earliest backup. While this won’t fail, it’ll give you the earliest backup rather than what you might want. But it’s a start. And there are nice notifications when the restoration fails or is going to take a long time. The file/folder gets restored to filename.restored so you don’t have to worry about overwriting your current version.

At some time it’s going to be the time to start testing TimeVault on more systems. Backups are not things that should have uncertainty regarding their reliability so I will spend as much time testing as I feel is necessary. But for this to happen on a wider scale packages for common distros would be really useful. If anyone has the know how to make packages for kubuntu/openSUSE/Arch Linux/others and is interested please contact me. I would love the help. TimeVault itself shouldn’t be hard to package, getting the dependencies right might be a bit of a challenge, but that’s a one time deal that will certainly get easier as time goes on.

I’ve updated the README file which should give a much better idea of how to get things running. If you’re curious or want to experiment you can find TimeVault at http://gitorious.org/timevault

Lastly, I’ve taken to hanging out in #timevault on irc. Feel free to drop by and say hi. I’d love to answer any questions you have.

Edit: looks like krytzz has added timevault to the gentoo kde overlay.

Subscribe to Comments

18 Responses to “Restoration: Start with the basics”

  1. Very cool! Every now and then something makes my jaw drop… This was one. Neat stuff.


    Andrew Lake

  2. Hurray for integration ! Your app will be a huge success instantly.

    Thanks for making it.



  3. Perhaps this app could make use of Nepomuk to store metadata for the files, such as “last backuped on {date}”, or “contained in the following backups”. This could open the possibility of versioning files, e.g. to easily go back in time for a folder or file.



  4. Nice feature for Konquereor – looking forward to see it in mainstream.

    First time that I stumbled over your blog – nice title-pic, but i think its time for a new rope :)



  5. Looks good. When restoring files could you also add the date/time to the filename – e.g. filename.restored-ddmonyyyhhmmss

    Sometimes it can be useful to restore multiple versions at once.



  6. @Daniel haha! You’d be surprised, those ropes are way stronger than they appear. But yeah, they were all replaced the year after I took that photo.



  7. “The file/folder gets restored to filename.restored so you don’t have to worry about overwriting your current version.”

    What if the restored filename would include the date when the file was modified? So you could easily restore different versions without renaming last restored file itself?

    So you would end up to have example_restored-modifieddate.odt from the original file named example.odt

    And then if possible, have the restoration menu show the backupped file modification dates. Example

    last backup (2009-12-31 or 24:59)
    last hour (23:59)
    Yesterday (2009-12-30)
    Last week (2009-12-23)
    Last month (2009-11-31)
    Last year (2008-12-31)

    The day when timevault gets sidepanel restoration… it will come very creat. Seeing a calender on right side where you could just browse the dates by clicking it and the fileview would change to reflect the current folder from backup.



  8. Oh, and I can not get timevault work on Mandriva Cooker with KDE SC 4.4 Beta 1. (4.3.80)

    The timevault does not come to the system settings and still offers the same timevault and timevault-backup binaries what just shows the dateview. I have just updated git when posting this, after following README (and even restarted). The README told to run “sudo /etc/init.d/dbus reload” what is not possible because dbus is not located there, I though reboothing whole system instead just relogin would do the trick. After that it was demanded to manually run timevault.

    And if wanted to get precompiled packages for multiple distributions, use openSUSE buildservice. You should get all from there yourself. Ask opensuse channel more information about it.



  9. I’m not a packager, so my terminology might be off. However, I’ve read about openSUSE Build Service (http://en.opensuse.org/Build_Service) which is supposed to enable developers to create one package that is automatically built for multiple distributions (http://en.opensuse.org/Build_Service/supported_build_targets).

    Don’t know if that would be of any help in your situation, though.



  10. @fri13
    Servicemenus are static options. I can’t mess with them. So although that would be much better, I can’t do it :(

    With that in mind, I only did the servicemenus because they provided a really really quick way to get semi-gui restores now rather than later. And that’s important for me because I want to use timevault as my main backup to ensure that it’s being tested and I can’t do that without being able to restore files.



  11. Currently, it looks like you can only select removable drive as backup target, but I think it would be really nice to also have the possibility to select other devices, like a network drive for example! Is that feature planned? Thanks



  12. You should really push this into kdebase or kdeutils. Then you could ask the dolphin usability team the right to do a proper backup plugin with a time slider and a QDockWidget for managinf backups. As long as it is well integrated I hope they won’t say no. It would be so great to have a backup system (using diff and not full copy, is possible) well integrated in Dolphin (and by default, if possible). Both OSX and Vista+ have one.



  13. [...] une traduction de Restoration: Start with the basics, de Andrew Stromme [...]


    Restauration Basique | Ktoekoms

  14. Hi,

    Sort of an off-topic comment but I’d like to congratulate you on writing such a nifty application for the Javascript Jam, much like TimeVault!

    It was really saddening to see it come a close second under all titles, it should’ve won at least one title. Anyhow, keep up the great work! Will keep an eye out for your applications yet again for another jam/contest/challenge another day! :)



  15. Your fork of Timevault has recently caught my eye. I played with the original Launchpad version that was native to Gnome, but I had some issues with the earlier versions of it and let it slip to the side.

    I’ve been digging through the source of your git tree to see where I could add functionality. So far, I’ve just been playing with CPack to make Debian packages (I primarily use Ubuntu). When and if I get that working, I’ll float the patch your way.

    I had some questions regarding the current tree though:

    1. Is the top-level README still accurate? It doesn’t look like you use rdiff-backup anywhere in the code anymore, for example. I see a call to rsync, but that’s it.

    2. What is the purpose for libmica? Obviously it provides the interface for snapshots and deltas, but is this your implementation of the rdiff-backup or is this an abstraction?

    3. Is the current plan to get local backups to work and then add-in support for remote locations, or is your focus solely on local drives?

    If you could add some general description of the components timevault to the repository, I’d love to hack around on it a bit. For example, I’d really love some slick Dolphin integration for restoration of files. I think what you have in terms of the settings module and service menu is great work and I’m excited to see where this goes and help out if possible.




  16. Andrew, I read through the rest of your posts tagged with TimeVault and through the comments, so sorry for asking some questions already asked. Personally, remote backup (across LAN) is ideal for me, so this is something that I’d work on if I knew were to start. After finals next week, maybe I should have some time over the summer to tinker on it.

    Also, you mentioned if it was possible to backup a single file of a backup set on demand….I looked into this and it doesn’t appear that it’s currently in the mainline, but request has been made for a –ignore option, which I think would allow for this ability. You could include the file(s) you wish to backup and ignore the others….I played with the CLI options and ended up just deleting the rest of the backup set.



  17. @Harsh

    Thanks :)

    I was also a little disappointed, I felt that I made a legitimately useful plasmoid, as well as a new take on the configuration of applet-based tuners.

    Such is life, it won’t prevent me from contributing to KDE in the future though I would admit it would have been nice to go to a developer event.



  18. any progress on this? I’m really looking forward to a final release!


    Daniel Boff

Leave a Reply