Apple's "Time Machine" Now For Linux... Sort Of
deander2 writes "Apple's 'Time Machine' is cool, but I use Linux, not MacOSX. So here is a Linux implementation (built off of rsync, of course). No fancy OpenGL, but quite functional none-the-less."
I have not used Leopard - so this is a real question, not a snarky response. My understanding was that a large part of what makes the whole Time Machine work and worthwhile is the interface. So if you don't have that, isn't it just another backup tool? Let me reiterate - this isn't a rhetorical question. Is doing the same thing without the interface sufficient or is it missing the point?
It's hard to believe that's how Micronians are made. Why don't we see it right now by having you both kiss one another?
...but how is this different Dirvish, which has been around for years?
Like TimeMachine, can this restore multiple versions of the same file? Did you use ZFS? Or is this just a GUI front end for a simple rsync backup?
what apple users did for backups before version 10.5 of their operating system? I just drag my important files onto an external drive.
I have excellent Karma and I am not afraid to Troll it.
We've had backup systems for decades. Even Windows has a more functional system than Leopard by accounts I've read. What Leopard did is make backup and restore sexy to the point that people will actually want to do it.
"Flyback" is a replacement for, well, I'm not sure what. It's certainly nowhere near Time Machine whose primary innovation was "damn gotta get me that" user-friendliness.
Dewey, what part of this looks like authorities should be involved?
I hate to sound like a fanboy but...
Apple did spend many months working on the interface and desing to try to make backups as
easy as possible... All the time they took was really in design time... A much smaller portion
was used in actually coding.... (Find files that have been altered from last update -> Copy Said files
to alternate drive in directory with the date as a name, make note of files that have deleted)
To Restore data go to the date of backup when data existed merge with previous dates and account for
deleted files.
Once selected copy files back to origional drive...
It really isn't a complex process... And I am not supprised that someone made it for Linux
within a couple of weeks of Leopard being public...
Apple did all the design work which was actually the hardest part the programming isn't that hard.
I would be careful for patent issues though... Apple is a big pattenter... (Espctially after
Microsoft stole their interface)
If something is so important that you feel the need to post it on the internet... It probably isn't that important.
It's easier to just use rsnapshot.
"The great thing about multitasking is that several things can go wrong at once." -me
There's already been work on a Linux Time Machine, just not ready for prime time yet: TimeVault.
IMO, it is not the _interface_ that is cool about Time Machine, but the ease of use and the fact that it is fully automatic.
I didn't RTFA, so I don't know if this "Time Machine for Linux" implementation is as easy to use or not, but the real thing that makes Time Machine cool is that even my mother can use it.
The Ars Technica article about Leopard has lots of very cool details about Time Machine in it, including how it works. (It uses hard-links, including hard-links to directories, so in each and every time-stamped folder on the backup drive, you have a *FULL* copy of your HDD at that time (minus anything you excluded from the backups). Read that portion of the Ars Technica article if you want answers to questions about it.
What I'd like to see is a very simple source code control system, built on the same design. Perhaps one that would just serve the needs of a single programmer.
The essential thing is that it should look like a file system, with direct access to the project directories at any state in development... write access to the current version, read-access to previous versions... directly accessible to any piece of code via the normal file API.
There should be no need for copying files back and forth from a central repository to a working directory.
It should be equally friendly to text and binary files. It should not take much disk space to store versions of files that have not changed at all from one project version/label/whatever to the next. It is not necessary or desirable to store just the diffs between text files; in the year 2007 we really can afford the disk space to store an entire new source file even if only a few lines in it have changed.
It should not rely on some central database that can be a central point of failure if it gets corrupted.
It should reliably serve both the functions of version control and backup. Bells and whistles in version control are less important than backup. In particular, if it's on an external drive and the CPU fails, you should be able to plug that external drive into a new CPU and go on accessing it immediately.
To those who work on hundred-engineer projects that need full-bore version control and CASE tools and so forth, peace. I'm not talking about a one-size-fits-all solution. I'm talking about a lightweight, simple, minimalist tool that as far as I know doesn't really exist today.
"How to Do Nothing," kids activities, back in print!
I've used Wombat in the past. It's basically a perl wrapper for rsync with a scheduler built in for hardlinked snapshots. Each image is a "full backup".
"Simple Backup Suite". Not quite Time Machine, but very simple and effective.
apt-get install sbackup
Deleted
I just drag my important files onto an external drive.
The whole point is that you don't have to do that, it happens automatically.
AND it catches all the files that you didn't think were important, but are.
AND it lets you roll the system back to the state it was in at any given time in the past (hence "time machine").
AND it takes care of any problems that can happen during backup (like "disk full", "power failure", etc.).
Can we get a "-1 Wrong" moderation option?
Claiming to have created a backuptool "inspired on" time machine obliges one to give some more documentation than... ehm... none. A few things I know about time machine, which are not trivial: Every backup in TM is a fully consistend directory tree for which no special software is needed to consult it. Disk space is saved by using hardlinks on the filesystem in a very delicate way, including hardlinks to directories (!!!). As a result, one can very selectively delete backups without corrupting anything. (e.g., you don't want to know the state 11 am, but do want to know the states at 10 pm and 12 pm? easy facilitated without any special software). TM uses a special feature in Leopard to keep track of modified files and directories, in such a way that TM itself does not have to scan for modified files, but is informed by the OS of modified files. This notification does not even require a deamon process. Now I do believe one can wrap together something which does backups. But standard unix/linux tools don't offer the above facilities - AFAIK. And rsync certainly does not facilitate multiple hardlinks to a directory to be made. Therefore, this shameless plug probably does not offer something similar to time machine. Unless the author also claims that a Trabant is something like a Ferrari.
I have had this type of rsync backups for years now on personal computers and servers. There are several scripts floating around the internet that do exactly what Time Machine does. The problem is 1) usability and 2) interface.
No end-user is going to put an rsync script in their cron jobs and specify in what mounted partition to store it and then later use rsync to restore the specified files. -- if an end user understands at all what I just said of course
Time Machine's interface is revolutionary. It gives you a way of looking back in time at your own computer and does it in a fancy way consistent with the interface. It does so for any Time Machine enabled application including Mail, Address Book, i*. If you have to restore a piece of mail from backup I doubt you'll know the name of the file it was stored in rsync or any other type of backup let alone knowing how to restore it without removing all the new messages.
Why did we always have to be bashing users for not creating their backups again? Because it was too difficult and too time consuming to make them. Time Machine takes literally 30 seconds to set up and the rest is automated. That's why people will start making backups. It's not difficult anymore and it's going to save me a lot of headaches.
Just my 2c.
Custom electronics and digital signage for your business: www.evcircuits.com
It's more of a way to recover your backup tool. So you are right, Time Machine is nothing without the interface. It sucks not being able to recover data easily, and sadly most other tools seems to concentrate on snazy ways to backup, not how to recover.
I use rdiff-backup with a cron job to do backups of my laptop to an external drive. It takes between 20-50 mins to do a daily backup of ~50Gb of data with about 200-700Mb of changed files. The only missing feature would be a "time machine" file browser in konqueror.
Or, you know, maybe it was just Time Machine that is ripping off Dirvish, which I've been using to do backups on my fileserver for years.
Random and weird software I've written.
Under Leopard, you can wipe your disk clean, put in Leopard DVD and reboot... one of the first options would be to restore system from Time Machine backup. With this tool, what is the point of including /bin, /usr etc. in the backup if there is no system restore support in Ubuntu installer?
...But will it run on Vista? you make the assumption that Vista runs.Anybody want my mod points?
One of the things that actually make time machine work well is that OS X keeps a log of every file updated on the system, and when the time machine daemon runs it looks at that log and knows which files to back up(as well as what time to mark them with etc). Now, maybe I'm doing rsync the stupid way, but doesn't rsync have to rescan every file on the system to see if it has changed? If you are backing up large directories that could be a large performance hit....
Monstar L
rsycn is a bit slow, and I find that it can't cope very well with a large amount of files. The only Linux solution I have found to be anywhere near the capability of TM is R1Softs CDP solution. It is too bad it does not run on Apple, but it does run on Linux and windows. R1Soft does have remote backups which in my opinion makes it a much better solution all together. In any case, I use TM for my Apple boxes and R1Soft for Linux / Windows, rsync is way to slow on any platform. http://r1soft.com/ -Zeek
Sure am ;) I just find that kind of "In the beginning there was Apple .. then everybody started copying it" Appleboy talk fun.
"DRM is like the Ford Pinto: it's a smooth ride, right up the point at which it explodes and ruins your day."-C.Doctorow
When I first heard about "time machine", my first thought was that consumer-grade commercial software had finally discovered rsnapshot. It's packaged for Debian, and available in "sarge" -- that makes it at least three years old.
Rsnapshot is an rsync-and-hard-links based scheme that also doesn't store duplicate data, and provides nice date-indexed browseable full file trees, much like the way both "time machine" and this flyback gizmo are described.
I haven't been this excited since AOL re-invented "ytalk"...
2*3*3*3*3*11*251
Hmm. My understanding/guess back when I first heard about it was that Time Machine was going to use the snapshotting feature of ZFS. Other Linux filesystems do have this feature. It's new and cool, but it's not ultra-new or ultra-high-tech. And yes, version control has been doing something similar for a long time.
dirvish and (my favourite, and the one I've tested) faubackup do this. In the debian package, you just edit the config file for how many days, weeks, months, and/or years of snapshots to keep, pick a (possibly remote) directory to put the backups in, and then add lines to a cron job for each directory to backup. Leave it alone, and whenever something goes wrong, you just go back to the date-labelled dirs and copy the files back.
from the website:
http://www.ext3cow.com/
Ext3cow is an open-source, versioning file system based on ext3. It provides a time-shifting interface that allows a real-time and continuous view of the past. This allows users to access their file system as it appeared at any point in time.
Ext3cow was designed as a platform for regulatory compliance, and has been used to implement secure deletion, authenticated encryption, and incremental authentication. See the publications page for more details.
Some advantages of ext3cow:
1.
It does not pollute the name space with named versions
2.
It has low storage and performance overhead
3.
It is totally modular, requiring no changes to kernel or VFS interfaces
You can't be ahead of the curve, if you're stuck in a loop.
I've seen clumsy interfaces that let you grab a backed up file from within a backup before, but never one that lets you preview - let alone do all this from within other applications.
W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
Both of those windows-based solutions, which have been out for quite some time, allow you to restore an individual file or folder from a wide range of dates. My setup backups files at midnight and 9am everyday, and I can any version of a file going back nearly 3 months. If I were to reduce the backups to once daily, 6 months of version changes on each file is plausible.
example: http://www.steveallwine.com/images/previousversions.jpg
The only arguement I can find about why Time machine is innovative is comparisons between it and system restore on the PC. Since these are two entirely different functions, I don't understand why its brought up.
The ones I have dealt with have all allowed you to retrieve a single file from within the backup granularity. Not sure what you mean by preview. Sounds like an interface thing.
The interface has always been horrible though, which kind of reinforces the original posters claim that the new (or at least less common) stuff is in the interface.
"That's not a gloryhole, that's a..." "...space station."
(Who didn't know that was coming?)
A number of people have pointed out some of the major deficiencies of this software in comparison to Time Machine. There are a couple of items, however, that no one seems to be mentioning and which I think will have some of the biggest, long term effects. First, Time Machine includes easy APIs so that other programs can access the stored data from within their application. Second, it is included in the standard install so developers can rely upon it being there.
Why does this matter? Think of all the applications in which versioning would be really nice, but it just isn't available. Your address book, for example can look up old contacts or numbers or addresses. Your development tools can automatically load an older, version of that code you're writing to recover that function you did not think was needed anymore, even if you did not write it to a versioning server. Your video games can take you back to older saved games or versions of characters before you sold that really cool item. Photoshop, Word, OpenOffice, etc. can use it to revert changes to a file all the way back to last month.
The difference is that while many users will never take the trouble to learn how to use a backup system and properly recover an old version of a file, they might trouble to plug in a Time Machine drive and then use the interface to backed up versions from with their applications. It seems strange that everyone is ignoring the cool new API for developers and concentrating on the integration in the finder, which will probably be the lesser used portion of Time Machine.
OK - there are a number of things -
if you use rsync for hourly snapshots to keep everything for the past 24 hours, you would probably do that by creating 24 separate target repositories (i.e. 24 full backups); OR, you allow rsync to create backups for your files - at most 24, but you purge any file older than a day (i.e. if there are only 2 versions for a day, the 3rd version older than 1 day gets deleted).
Now you want to extend this to keep ONE daily snapshot. Either again, create full repositories; OR you need to make your purging routines for numbered backups smarter in only purging all 'hourly' backups older than a day; but leave the last change for each day before in there as well.
If you have that, you have the FILESYSTEM side covered.
But, this does not allow you yet, to transparently go back in 'view only' to look at past events within your applications (this needs the application to support your backup tool, which is one of the reasons why a number of applications need to be changed for Leopard).
Take the earlier example of an accidentally deleted address book entry - which you can restore from within TimeMachine - simply start TM while your addressbook is the 'current application' (the one having input focus). In TM, you will see your open address book, going back in time it will show the state of the applications saved data 1, 2, 3 or more hours or days ago (depending on your selection). In iPhoto, it would show you the state of the Albums you had at the time; but neither of the two apps would allow you to SAVE back into the past. Once you find the record you like, you select it and click restore, and TM will go back to the desktop and the data you have selected goes back into your app (this can even be a PARTIAL restore of the data, say ONE of two albums you deleted).
In terms of Leopard compatibility and apps, most apps need updates, because they do not keep their application data in sync on the disk -- e.g. you could have a partially updated file at the time TM takes the backup, which might result in unusable data for that particular snapshot. I haven't looked on what exactly the app needs to do, but TM will interact with the applications directly to save the correct states; or to display the correct information if you go 'back in time'.
And this part definitely goes way beyond other backup solutions I have seen, because backups up to now only care about what the filesystem says; and do not care about integration with applications.
That said, what I do not like about TimeMachine is that it is restricted to one destination volume (my MacPro has about 1.7TB in disk space; there is no single disk that could take a full backup of everything. Luckily, I have a sizable amount of data that rarely changes - so I back that up manually and exclude this from TM. Otherwise I would basically need a separate RAID to put the backups on...
That's not true. Read the link I posted above. rsync can create hard links, through the magical --link-dest option. This means that you never need to do full backups, or worry about keeping track of several versions.
/etc/cron.{daily,weekly,monthly}/.
/etc/snapshot/include.txt`
/usr/bin/awk 'substr($0,length($0),
You can set up rsync to do hourly, daily, weekly, and monthly backups, all taking up minimal (and I mean minimal) disk space, using hard links.
All you have to do is rm -rf your oldest directory of each kind (hourly daily, weekly, monthly) every time you run.
Heck, I'll even give you the BASH script I use to do this. Call it via cron: e.g. snapshot daily
#!/bin/bash
# This script makes a snapshot of several directories using rsync.
# Version 0.5, Rob Bos, September 8, 2002
# Modified by Pausanias August 2004
# This script is released under the terms of the
# GNU General Public License, version 2.0.
# run "hourly" from a crontab; run daily, weekly, and monthly from
[ -z "$1" ] && echo syntax: $0 snapshottype baselinesnapshottype && exit 1
type=$1 # hourly, daily, monthly snapshot?
logfile=/var/log/snapshot.log
backuproot=/Volumes/Sutton/ibackup
backup=`cat
excludefile=/etc/snapshot/exclude.txt
echo `date` >> $logfile
[ ! -e "$backuproot" ] && echo "$backuproot not mounted." >> $logfile && exit 1
# Assume that the baseline snapshot type is daily unless otherwise
# specified.
if [ "f$2" == "f" ]; then
basetype="daily"
else
basetype="$2"
fi
# if you run every two hours, make it 12, every hour, 24, etc. try to span the entire day.
# The below setting runs 8 times a day (every three hours), keeps 7 days, 4 weeks, and 12 months
# of backup.
hourlymax=8
dailymax=10
weeklymax=5
monthlymax=8
# This simplifies things down below so I can use $max to delete
# the overrotated snapshot, as well as $hourlymax/$dailymax to do
# rotation checks.
[ $type == "hourly" ] && max=hourlymax
[ $type == "daily" ] && max=dailymax
[ $type == "weekly" ] && max=weeklymax
[ $type == "monthly" ] && max=monthlymax
# Rotate the current list of backups, if we can.
if [ -d $backuproot/$type.1 ]; then
oldest=`ls -dt $backuproot/$type.* | tail -n 1 | sed 's/^.*\.//'`
echo Oldest is $type.$oldest >> $logfile 2>&1
for i in `/usr/local/bin/seq $oldest 1 -1`; do
mv $backuproot/$type.$i $backuproot/$type.$(( i + 1 ))
done
linkopt="--link-dest=$backuproot/$type.2"
else
linkopt=""
fi
if [ "$type" == "$basetype" ]; then
rsync -xva $linkopt --safe-links --delete --delete-excluded --exclude-from=$excludefile $backup $backuproot/$type.1/ >> $logfile 2>&1
elif [ "$type" == "daily" ]; then
[ -d $backuproot/hourly.$hourlymax ] && mv $backuproot/hourly.$hourlymax $backuproot/daily.1
elif [ "$type" == "weekly" ]; then
[ -d $backuproot/daily.$dailymax ] && mv $backuproot/daily.$dailymax $backuproot/weekly.1
elif [ "$type" == "monthly" ]; then
[ -d $backuproot/weekly.$weeklymax ] && mv $backuproot/weekly.$weeklymax $backuproot/monthly.1
fi
Yep that is a sweet feature, and works the same freaking way in Vista.
Why on earth did MS's marketing not run with this feature and rename it 'super duper time traveler'...
It is largely due to the difference in pro vs. casual development methodologies. They both have their failing in terms of discipline, but the casual crowd lack something ELSE:
* They are coding to impress/please either A) themselves or B) their coder and sysadmin peers
* They rarely establish who their audience is (not consciously).
* The above determines what interface (in the broad sense) types will be honored. In the case of GNU system hackers, the interfaces are CLI and libwhatever APIs. ABIs are shunned party because of licensing, but also to a large extent because their audience is unconsciously assumed to be people familiar with linkers and compilers.
* Press Ctrl-Alt-Bksp in your Linux GUI and watch as all unsaved data is *instantly* oblitterated. GUIs are a nuisance to the Linux crowd because they represent an unwanted commitment (or the suggestion of a commitment they want to avoid). Likewise WRT a graphics subsystem that isn't properly configurable given any reasonable set of usability criteria... if Xfree and Xorg can't write a comprehensive configuration panel themselves, they should at least give others the tools to do so (and the semantically f--ked xorg.conf file is no such tool). Any fool writing for usability would have at least provided an API to have settings changed/validated in memory AND saved to disk by the graphics subsystem itself.
And just what is a computing 'interface'? It is defined as a commitment to a set of functionality for a particular class of actors (users). But FLOSS coders for the most part are NOT going to commit to end-users or other non-peers.
The ones that buck this attitude and inherited a lot of professionalism and user-focus from the proprietary world are: Mozilla, OpenOffice, MySQL among others. Ubuntu could qualify, though they aren't my ideal of 'coders'... they have internalized some specific user-focused methodologies.
Ones that are stereotypically slacking in the FLOSS manner: Gimp, Linux kernel (sorry, that is my honest assessment and I can cite Torvalds' own comments that would support it). KDE and to a bit lesser extent Gnome (although I hate to say so, because Gnome is so technologically awful).
Recommendations:
* Learn Rational Unified Process. Particularly the parts that cover documentation of requirements and use cases; continually reviewing/refreshing these is the best discipline for staying audience-focused.
* Dump the software repository mentality. Repositories/distros are inserting themselves between you and your end-users. You will have to code your stuff with LSB Desktop as a target and include all the rest that the spec doesn't supply, but you will finally be able to realistically distribute apps to end-users independently, on your own, without dependency issues.
* Re-connect with Personal Computing as a concept. Why were IBM PCs coveted in offices that were bursting with IBM mainframe terminals? Answer: Personal initiative and control for non-experts. Distro/repository culture comes from the computer science lab and server room. The concept of PC platform, a defined and easily navigable space upon which you place third-party products, came from the garage and the backoffice. Apple has a PC platform, and MS does. FLOSS has BSD and Linux distros where a novice programmer cutting her teeth has little chance of quickly and easily sharing her work with classmates and friends (even when they run Linux)... she'd have to devote weeks to fighting with and learning the package manager/dependency tarbaby first.
* For the OS people: Your graphics and sound subsystems must be refactored before they can meet basic user expectations. Linux *still* does audio-blocking on inexpensive hardware even with ALSA; the architecture of audio mixing must be reworked to never allow blocking unless an app jumps through hoops to do so. Not hearing a softphone ring, or a meeting alarm because of some Flash-laden web pages doesn't cut it... it's UNUSABLE!
Fixing this w
Because as is the case with a lot of things about windows, they don't seem to realize when they have a good thing. They wrote all the good backend code for a great feature, halfassed the UI so that the general populace wouldn't get it or want it, and then hid the entire shebang in the most expensive version of their software. Then again, there I go, thinking that maybe desktop users are MS's customers, as opposed to say - dell and hp.
$ su -
# yum install pygtk2 gnome-python2-gconf gnome-python2-extras pygtk2-libglade
Note the hash before the command, as opposed to the dollarsign. The hash indicates that we are root.
It is dangerous to be right when the government is wrong.
By preview I mean to see the contents of the file without actually "restoring" it. So you can know if you have the right version or if you need to go back/forward further.
W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
If Vista's actually does work that well, then you've asked a very interesting question.
Somehow, though, I don't think Microsoft suddenly woke up and figured out how to actually be fanatic about making minor hassles vanish. I'm betting Vista's feature works that well *after* you mutter the right keyboard and mouse incantation, with a lot of "well, of course"ing from people who just overwhelm them (the hassles) with competence, from the user side of the equation, and simply cannot comprehend the notion of doing it from the software end.
As always, all IMO. Insert "I think" everywhere grammatically possible.