As soon as you said "svn" I got the idea you want revisions of files you send to storage, which is a fine idea. Backups are fine, but if you have to work at the granularity of "yesterday or maybe the day before" it can become cumbersome.
To my mind the first question to answer is how do you want to commit these files to a revision control system. This determines what you do next. If you want it file-by-file, then getting a single file is a simple svn checkout, but rolling everything back to yesterday (eg for when you accidentally did an rm on .kde or .mail) will be tricky. To do this, commit the files to remote svn and just put up with the hassles of the binary files. Yes, I know binary in SVN is amazingly evil and makes the worst ever out of Redmond look like child's play, but sometimes you have no choice... Or use a revision control system that can deal with binaries OK. All depends on what *you* need stuff to do. If you are happy committing an entire Makefile run and are OK to work with that, then you use an FS (or LVM) that can do snapshots, and make one as the last command in your Makefile. Restores are a case of mount the snapshot, find the file of interest and do what you need with it. It really comes down to the old story of "precisely define first what exactly you want to achieve" and then the tools to do that often present themselves. On Sun, 2 Dec 2012 12:21:40 -0500 Randy Westlund <[email protected]> wrote: > I've been using rsync to sync binary files, shell scripts, my > workspace, and random user files under my home directory across > multiple machines. I'm using one server as the master copy, which > makes daily incremental backups of my files to a separate disk with > rsync. At the moment, I have my sync script set up as a Makefile with > the following targets. I run this from multiple workstations. > > It would be nice to use something as easy as svn, but many of my files > are binary. Or something like dropbox would be great. I don't work > from windows, so I don't need a cross-platform solution. > > What utilities do you guys use? Is there a better way to do this? It > would be nice to move everything to the background, but I've already > clobbered a few files by calling this in the wrong order and might > move the Makefile to an interactive script to protect against that. I > have to call 'make clobber' after I remove a local file to push that > change to the server, and if I forgot to call 'make get' first, I have > to fix it manually. > > -------sync makefile-------- > get: > rsync -azOuvihh --progress -e ssh $(EXCLUDE) \ > --delete \ > $(HOST):$(SERVER_DIR) $(LOCAL_DIR) > > put: > rsync -azOuvihh --progress -e ssh $(EXCLUDE) \ > $(LOCAL_DIR) $(HOST):$(SERVER_DIR) > > clobber: > rsync -azOuvihh --progress -e ssh $(EXCLUDE) \ > --delete \ > $(LOCAL_DIR) $(HOST):$(SERVER_DIR) > ------end------- > > -------backup script-------- > # if files are already there, hard link > # the last lines mark it as complete and move a soft link pointer > rsync -zavi --progress --delete \ > --link-dest=$BACKUP_PATH/current \ > $SOURCE $BACKUP_PATH/backup_part_$DATE \ > && mv $BACKUP_PATH/backup_part_$DATE $BACKUP_PATH/backup_$DATE \ > && unlink $BACKUP_PATH/current \ > && ln -s $BACKUP_PATH/backup_$DATE $BACKUP_PATH/current > -------end--------- > > Randy > -- Alan McKinnon [email protected]

