zoheb Posted October 4, 2012 Share Posted October 4, 2012 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. . Link to comment Share on other sites More sharing options...
cybertimber2008 Posted October 4, 2012 Share Posted October 4, 2012 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] Link to comment Share on other sites More sharing options...
zoheb Posted October 4, 2012 Author Share Posted October 4, 2012 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? Link to comment Share on other sites More sharing options...
cybertimber2008 Posted October 5, 2012 Share Posted October 5, 2012 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. Link to comment Share on other sites More sharing options...
Recommended Posts