Last time I bought a desktop PC to my small office. I wanted to have a PC which will be always in my office, because getting notebook every time is not comfortable. So I bought Dell OptiPlex 760 Form Factor (FF) with this configuration:

Intel® Core™2 Duo Processor E8400 2 x 3,0 Ghz, 6MB Cache, 4 GB RAM, 160 GB HDD.

I deleted Windows and I installed Ubuntu 16.04, of course.

Usually I use my notebook to work but from now I have two machines I’m working on. So there is a new problem connected with synchronization data. Sometimes I work on notebook, sometimes on desktop… Which files are current? BTW! I didn’t consider Dropbox and etc. because I don’t trust cloud – end of discussion.
First solution was Unison. It is a small application which can synchronize files between local and remote locations. For three days it worked perfectly. But suddenly I noticed that my files are corrupted, actually there were empty (0 bytes). First time I thought that it was connected with Windows (I plugged in my flash drive into the Windows machine). But I formatted flash drive again and started one more time to use Unison. After a few days – the same, there were files with 0 bytes.

Then I decided to say “I’m sorry” to the rsync.

So, now I use rsync to synchronize my data.
Pros:
1. It is universal app which is present in every Ubuntu and other Linux.
2. It is very fast.
3. Rather doesn’t make mistakes.

Cons:
1. You should operate in terminal.
2. I have to remember about synchronize with my flash drive every time before and after a work session.

I wrote a small bash script, I use it to synchronize my data between desktop, notebook and flash drive.

Now as you can see in the code above, I only have to plug in the flash drive (in my case SANDISK) and select an option. Before working session I select “f” from flash to PC. After a work I select “p” – from PC to flash drive. Maybe it is uncomfortable to run every time this script but I don’t see other solution at this moment.

OK, a quick explanation to the rsync options:

  • r – recursive, I do not comment it
  • t – preserver timestamp, this means that the “accessed” parameter will not be changed
  • v – verbose, means “show me what are you doing now” on the screen
  • u – update, means update only (don’t overwrite newer files)
  • – -delete, delete the files in the destination, if I deleted them in the source
  • – -ignore-errors, no comments
  • – -stats, show me stats (how many files copied etc.)
  • – -progress, means show progress in percentage (rather used to see progress when you copy big files)

Leave a Comment