Home » Questions » Computers [ Ask a new question ]

Sync remote folders on Linux

Sync remote folders on Linux

What is the simplest way to unidirectional incremental syncing of a folder present on a Linux system.

Asked by: Guest | Views: 233
Total answers/comments: 2
Guest [Entry]

"csync is a file synchronizer especially designed for you, the normal user.

csync is a library and ships commandline client by default. It is server-less and allows synchronisation through either sftp or samba.

Usage examples:

csync /home/csync smb://csync:secret@rupert.galaxy.site/Users/csync
csync /home/csync sftp://csync@krikkit.galaxy.site:2222/home/csync"
Guest [Entry]

"This is how I would do a unidirectional sync with bare tools.

At the onset, tar the entire set of files and copy them to the destination point.
Also, setup a marker in the base directory.

touch /Source/base/directory/last-sync-time.txt

Now, we want to keep sync'ing from Source to Destination.

At the next time slot for syncing forward (from Source to Destination),

# The backup script
cd /Source/base/directory
tar cfj -N ./last-sync-time.txt backup.tar.bz2 .
scp backup.tar.bz2 user@backup-server:/Backup/Directory/
touch /Source/base/directory/last-sync-time.txt
rm -f backup.tar.bz2

The -N ./filename tells tar to archive only files modified or created after filename was modified/created.

Using a local reference for time confirms you make no mistake; if a backup was not taken for some reason, the next one will accumulate it
You can setup this script as a cronjob entry on the Source machine
I am assuming you will use scp with public key authentication
Also assuming you can reach the backup-server whenever this script is issued.
To be safer, you can add checks for confirming backup was stored and then, issue the touch command
You can choose to also insert commands to expand the backups overlaying them over previous ones at the Destination point; Or, keep incremental tar.bz2 archives."