Skip to content
Snippets Groups Projects
rsync.in 27.8 KiB
Newer Older
  • Learn to ignore specific revisions
  • rhatto's avatar
    rhatto committed
    function include_vservers {
    
    rhatto's avatar
    rhatto committed
      # add vservers to included folders
    
    rhatto's avatar
    rhatto committed
      if [ "$vservers_are_available" == "yes" ]; then
    
    rhatto's avatar
    rhatto committed
        # sane permission on backup
        mkdir -p $backupdir/$VROOTDIR
        chmod 000 $backupdir/$VROOTDIR
    
        for candidate in $found_vservers; do
    
          candidate="`basename $candidate`"
          found_excluded_vserver="0"
          for excluded_vserver in $exclude_vserver; do
    
    rhatto's avatar
    rhatto committed
            if [ "$excluded_vserver" == "$candidate" ]; then
              found_excluded_vserver="1"
              break
            fi
    
          done
          if [ "$found_excluded_vserver" == "0" ]; then
    
    rhatto's avatar
    rhatto committed
            include="$include $VROOTDIR/$candidate"
    
    rhatto's avatar
    rhatto committed
        done
      fi
    
    rhatto's avatar
    rhatto committed
    }
    
    rhatto's avatar
    rhatto committed
    function start_mux {
    
    rhatto's avatar
    rhatto committed
      if [ "$multiconnection" == "yes" ]; then
        debug "Starting master ssh connection"
        $ssh_cmd -M sleep 1d &
        sleep 1
      fi
    
    rhatto's avatar
    rhatto committed
    }
    
    rhatto's avatar
    rhatto committed
    function end_mux {
    
    rhatto's avatar
    rhatto committed
      if [ "$multiconnection" == "yes" ]; then
        debug "Stopping master ssh connection"
        $ssh_cmd pkill sleep
      fi
    
    rhatto's avatar
    rhatto committed
    }
    
    rhatto's avatar
    rhatto committed
    # the backup procedure
    
    rhatto's avatar
    rhatto committed
    eval_config
    
    check_lockfile
    
    rhatto's avatar
    rhatto committed
    set_lockfile
    set_rsync_options
    start_mux
    stop_services
    mount_rw
    
    rhatto's avatar
    rhatto committed
    echo "Starting backup at `date`" >> $log
    
    rhatto's avatar
    rhatto committed
    for SECTION in $include; do
    
    rhatto's avatar
    rhatto committed
      prepare_storage
      set_orig
      set_batch_mode
      set_filelist
      set_dest
    
    rhatto's avatar
    rhatto committed
      info "Syncing $SECTION on $dest_path..."
      debug $nice $rsync "${rsync_options[@]}" $filelist_flag $excludes $batch_option $orig $dest_path
    
    rhatto's avatar
    rhatto committed
      $nice $rsync "${rsync_options[@]}" $filelist_flag $excludes $batch_option $orig $dest_path | tee -a $log
    
    rhatto's avatar
    rhatto committed
      if [ "$?" != "0" ]; then
        warning "Rsync error when trying to transfer $SECTION"
      fi
    
      update_metadata
    
    rhatto's avatar
    rhatto committed
    done
    
    rhatto's avatar
    rhatto committed
    mount_ro
    run_fsck
    start_services
    unset_lockfile
    end_mux
    
    
    echo "Finnishing backup at `date`" >> $log