Monday, April 6, 2015

Linux tip: Synchronized backup

I use rsync a lot for backing up my important folders. Unfortunately, rsync gets pretty verbose when it comes to deeply nested directories with lots of files - resulting in the update information getting lost in the log flood.

The following function works well for me:

function backup {

    pairName=$1
    srcFolder=$2
    destFolder=$3

    echo -e "\n\nRunning backup for $1"
    echo ===============================================
    echo Source Folder = $srcFolder
    echo destination folder = $destFolder

    rsync $dryRun -rilptgo --delete --stats \
              --filter='.<path to your rsync filter file>' \
              "$srcFolder" "$destFolder" | grep "^[^\.]"
}

This gives a nice readable output as below:

Running backup for eBooks
======================================================================
Source Folder = /media/sandeep/D/eBooks/
destination folder = /media/sandeep/Professional [Transcend 160]/SynchedBackup/eBooks
*deleting   Entertainment/Handwriting/calligraphy_101.pdf
>f+++++++++ Entertainment/Handwriting/[Read] calligraphy_101.pdf
Number of files: 63,394 (reg: 57,195, dir: 6,199)
Number of created files: 1 (reg: 1)
Number of deleted files: 1 (reg: 1)
Number of regular files transferred: 1
Total file size: 41,114,388,469 bytes
Total transferred file size: 42,973,354 bytes
Literal data: 42,973,354 bytes
Matched data: 0 bytes
File list size: 327,652
File list generation time: 0.003 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 44,923,979
Total bytes received: 196,790
sent 44,923,979 bytes  received 196,790 bytes  527,728.29 bytes/sec
total size is 41,114,388,469  speedup is 911.21

No comments: