Top Nav

Syncing Content Between RackSpace Cloud Servers With Unison

We have two RackSpace Cloud Server running CentOS that need to have the web content kept in sync. Changes on either server need to be replicated to the other server. Easy way to get this accomplished is with the Unison File Syncronizer (http://www.cis.upenn.edu/~bcpierce/unison/). Here are the steps:

1. Install SSH keys for root on each server so SSH can run without passwords between the servers.

2. Add /etc/hosts file entries to map the private addresses of the servers to names.

3. Install Unison on each server:

4. Create a profile on each server at /root/.unison/sync_web.prf containing:

Notice the hostname “web2-priv” in red above. The file on web1 should reference web2-priv. The file on web2 should reference web1-priv.

You’ll need to adjust the path listed in the file to match your environment.

5. Next create a script to run Unison with the profile created in the previous step. Name the script /root/sync_web.sh and make it executable.

6. Add an entry to /etc/cronjob to run Unison once per minute:

Everything should now be ready to go. You can test by running the sync_web.sh script manually on each server. If there are no errors then try adding, changing and removing files on both servers and verify that the changes are synced within one minute.

  • Anonymous

    How often does the sync take place, how much lag will you have if you upload content?

    • leerb

      The cronjob can run as fast as every minute but this might be to fast for some servers.

  • are there any advantages in using unison over rsync?

Email
Print