Sign in to follow this  
Followers 0
zoheb

Sync folders across two remote servers or machines

4 posts in this topic

Can someone help me creating a script that will sync the folders between 2 servers such that if we delete any file on either of the machine, the other should reflect the same.

I will be using a cronjob to run the script daily.


rsync -parv user@server1:source/ user@server2:destination/
[/CODE]

The above command will only sync the source folder on server1 to destination folder on server2.

Now on any given day if I delete a huge file from destination folder (as I dont need it anymore) and if the cronjob gets executed, the huge file in source folder will again be copied over to destination.

I need to avoid this. In the above case, the script should delete the huge file from source folder.

I think unison would be helpful here but how to integrate it within a bash script.

Else, how can we do it with rsync itself?

Thanks in advance. .

Share this post


Link to post
Share on other sites

If I understood you right, you want the --delete option.

http://superuser.com/questions/156664/rsync-delete-options


--del an alias for --delete-during
--delete delete extraneous files from dest dirs
--delete-before receiver deletes before transfer (default)
--delete-during receiver deletes during xfer, not before
--delete-delay find deletions during, delete after
--delete-after receiver deletes after transfer, not before
--delete-excluded also delete excluded files from dest dirs
[/CODE]

Share this post


Link to post
Share on other sites

If I understood you right, you want the --delete option.

http://superuser.com...-delete-options


--del an alias for --delete-during
--delete delete extraneous files from dest dirs
--delete-before receiver deletes before transfer (default)
--delete-during receiver deletes during xfer, not before
--delete-delay find deletions during, delete after
--delete-after receiver deletes after transfer, not before
--delete-excluded also delete excluded files from dest dirs
[/CODE]

That was nice. . .

the suitable option seems to be --delete >>>> [font=Consolas, Menlo, Monaco,]Deletes files in the destination directory if they don't exist in the source directory. So the 1st half of the problem is solved.[/font]

But what if I want to delete a file in the source directory if it does not exists in the destination directory?

Share this post


Link to post
Share on other sites

If you delete a file in the source that doesn't exist in the destination, you would just delete it as normal. It was never rsync-ed, and therefore there is no duplicate.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0

  • Recently Browsing   0 members

    No registered users viewing this page.