Torbjörn Nordling
2006-Feb-21 16:11 UTC
rsync through a server storing the changes, time delayed rsync
Problem: I have two computers (one at work and one home) and I want to keep them identical, but I cannot rsync them directly because when one is running then the second is turned off. I also have access to 500 MB of storage space on a server running continuously, which is not nearly enough to hold all data stored on the two computers. So my idea is to use the server for storing an rsync file list with checksums from the last update and then upload the data that has changed to the server. Scenario: Last thing I do at work is update the file list on the server and upload all data the rsync identify as changed. Then at home I would connect to the server and download the changed data, which is integrated by rsync in correct files. Before I turn off my home computer then I would again rsync the changes to the server. This would make the rsync delayed in time. Question: Has anyone tried something similar and could direct me towards how to make it work? Or is this impossible today, but something that quite simply could be built into rsync? Based on what I have read about how rsync works it seems feasible to me. Thanks, Tor
Carson Gaspar
2006-Feb-21 16:58 UTC
rsync through a server storing the changes, time delayed rsync
--On Tuesday, February 21, 2006 4:48 PM +0100 Torbj?rn Nordling <tn@s3.kth.se> wrote:> Problem: > I have two computers (one at work and one home) and I want to keep them > identical, but I cannot rsync them directly because when one is running > then the second is turned off. I also have access to 500 MB of storage > space on a server running continuously, which is not nearly enough to > hold all data stored on the two computers. So my idea is to use the > server for storing an rsync file list with checksums from the last update > and then upload the data that has changed to the server. > > Scenario: > Last thing I do at work is update the file list on the server and upload > all data the rsync identify as changed. Then at home I would connect to > the server and download the changed data, which is integrated by rsync in > correct files. Before I turn off my home computer then I would again > rsync the changes to the server. This would make the rsync delayed in > time. > > Question: > Has anyone tried something similar and could direct me towards how to > make it work? Or is this impossible today, but something that quite > simply could be built into rsync? Based on what I have read about how > rsync works it seems feasible to me.What you're suggesting won't work. You have 2 options I can see: 1) - Maintain a "last synced" timestamp on each client and the server. - To sync to the server, find all files with a mtime newer that the last synced time, and copy them onto the server, then update the sync time on that client and the server. - To sync from the server, check if its last sync time is different from yours. If it is, copy the files and the timestamp from the server, then delete the files from the server. 2) - Maintain 2 copies of the data on both clients (using snapshots would make your life easier and storage requirements smaller) - Use rsync to generate batch change files between the old and new copies, and copy them onto the server - download and apply pending batches on the other client -- Carson