Don't like ads? PRO users don't see any ads ;-)
Guest

Incremental backup

By: a guest on May 19th, 2012  |  syntax: Bash  |  size: 0.86 KB  |  hits: 37  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #!/bin/bash
  2.  
  3. # Incremental backup script
  4. # (c) tumik 2012
  5. #
  6. # - requires rsync
  7. # - Set to 1 year by default
  8. # - Save to for example /etc/cron.daily/
  9.  
  10.  
  11. # Where to create backup folders
  12. BDIR="/mnt/mirror/autobackup"
  13.  
  14. # Folders to backup (start with space)
  15. LIST=" /home/1stDir /home/2ndDir"
  16.  
  17.  
  18. for d in $LIST; do
  19.        
  20.         if [ -d /$d/ ]; then
  21.  
  22.                 # If folder doesnt exist, create it
  23.                 if [ ! -d $BDIR/$d/ ]; then
  24.                         mkdir -p $BDIR/$d/
  25.                 fi
  26.  
  27.                 cd $BDIR/$d
  28.                
  29.                 # Delete oldest
  30.                 if [ -d "backup.365" ]; then
  31.                         rm -rf backup.365
  32.                 fi
  33.  
  34.                 # Move everything forward by 1 day
  35.                 for i in {364..0}; do
  36.                         j=`expr $i + 1`
  37.                         if [ -d "backup.$i" ]; then
  38.                                 mv backup.$i backup.$j
  39.                         fi
  40.                 done
  41.  
  42.                 # Actual copying
  43.                 rsync -a --delete --link-dest=../backup.1 /$d/ backup.0/
  44.  
  45.                 echo `date` > last.txt
  46.                 echo "`date` - /$d copied successfully"
  47.         fi
  48.        
  49. done