Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

We're on a university campus, and each building has it's own local network connecting directly to the main server room.

In our building, we're currently working on a large multimedia project. Some people are working in Photoshop, others in Final Cut Pro / Adobe After Effects. All files are being saved to a samba share in the central server room.

On our local network, we have a server running Ubuntu 12.04 Server. What we need to do, is to establish regular (daily) backups from the samba share, to the local Ubuntu server. This will allow us to access our project files locally when the remote server is inaccessible. If the files residing on the local server are modified, the changes need to be pushed back to the central server.

I was thinking about using a combination of Rsync and some kind of version control system (both running on the local Ubuntu server).

I'm kind of at a loss here about what to do. I've set up LAMP stack servers before, and I'm pretty sure I could establish some kind of backup system, but this isn't your traditional backup situation. Any help would be appreciated.

share|improve this question
Also: The files are already being backed up from the central server, to external HDDs connected to a Mac Mini on our local network. It is my intention to connect/mount these external drives to our Ubuntu server to store the backups. – emanuel.b Jul 24 '12 at 23:27
This could benefit from some clarification. Are you wanting actual backups, or just directory syncronization? I'm not sure from what you've said, and it makes a difference. – HopelessN00b Jul 25 '12 at 0:05
I guess I'm looking for directory synchronization. more than anything else. I need to pull the files from the central server, so they can be edited locally, and any modifications need to be pushed back to the central server. It's important to note that the central servers tend to "go down" often. This is why we need the files mirrored to our local server, so we can work on the project files even if the main server is down. The changes NEED to be sent back to the main server when it comes back online. – emanuel.b Jul 25 '12 at 0:26
up vote 0 down vote accepted

The rsync program has an option -b and --backup-dir= to move replaced files on the target machine into an incremental backup location. Each time a backup run is made, increment the backup location name. I use dates and times, starting with yyyy-mm-dd and adding hours and even minutes for additional runs beyond the usual daily. This will give you a reverse incremental backup. The main backup target is most recent, and older files are archived by date and time. You can prune the increments safely by deleting the very oldest increments you no longer want to keep, so your space does not overflow. Add on a script to record a list of files after each run if you also need to know what files do NOT exist back on sole older date.

Restores start with the current backup tree. If you need older versions, look at the increments.

share|improve this answer
Would I be able to do this automatically, via a cron job perhaps? I'd also like to know if it is possible to implement a version control system (the boss seems to prefer git) inside of the backup location. – emanuel.b Jul 25 '12 at 0:28
It can be automated. Mine is automated. My incrementals ARE my versioning system. It just isn't git. To have a git API access something would need to check in all these files to a repository. Or someone would have to write an interface to emulate git over these incrementals. Is making it work for git clients a genuine requirement, or is making it have the abstract idea of periodic saved versions the requirement? – Skaperen Jul 25 '12 at 2:13
No git is definitely not a requirement. Our manager is simply convinced that it's necessary. Thanks, though. This is exactly what I was looking for. I'll pass on the information. – emanuel.b Jul 25 '12 at 2:49
You could make "backups" by adding files to git. I've seen it donw with SVN. But on a large scale I can see many things easily go wrong with it, including the use of more storage than the rsync scheme would need. It might be harder to reap old versions no longer needed. I suggest an interview to find out, in more abstract terms, what the manager really wants and why he might think git is the solution. – Skaperen Jul 25 '12 at 3:12

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.