]> gitweb.fluxo.info Git - puppet-backup.git/commitdiff
Using rsync handler from 1.0~rc1-1.1 debian package
authorSilvio Rhatto <rhatto@riseup.net>
Mon, 21 May 2012 16:27:12 +0000 (13:27 -0300)
committerSilvio Rhatto <rhatto@riseup.net>
Mon, 21 May 2012 16:27:12 +0000 (13:27 -0300)
files/handlers/rsync

index cb4db4635fbe6d85fe5c31c93c7b348c5eb7fefe..6262af04ce25326ba8b8bff70e269749231c165f 100644 (file)
@@ -39,7 +39,6 @@
 #   keepdaily = for long storage format, specify the number of daily backup increments
 #   keepweekly = for long storage format, specify the number of weekly backup increments
 #   keepmonthly = for long storage format, specify the number of monthly backup increments
-#   lockfile = lockfile to be kept during backup execution
 #   nicelevel = rsync command nice level
 #   enable_mv_timestamp_bug = set to "yes" if your system isnt handling timestamps correctly
 #   tmp = temp folder
@@ -129,7 +128,6 @@ function eval_config {
   getconf keepdaily 5
   getconf keepweekly 3
   getconf keepmonthly 1
-  getconf lockfile
   getconf nicelevel 0
   getconf enable_mv_timestamp_bug no
   getconf tmp /tmp
@@ -277,10 +275,7 @@ function eval_config {
     mv=move_files
   fi
 
-  excludes=`echo "$exclude" | sed -e "s/^/--exclude='/g" -e "s/ /' --exclude='/g" -e "s/$/'/"`
-
-  # Make sure we'll run bash at the destination
-  ssh_cmd="$ssh_cmd /bin/bash"
+  excludes=`echo "$exclude" | /bin/sed -e "s/^/--exclude='/g" -e "s/ /' --exclude='/g" -e "s/$/'/"`
 
 }
 
@@ -411,7 +406,7 @@ function rotate_long {
     fi
     
     # Rotate the current list of backups, if we can.
-    oldest=`find $backuproot -maxdepth 1 -type d -name $rottype'.*' | sed -e 's/^.*\.//' | sort -n | tail -1`
+    oldest=`find $backuproot -maxdepth 1 -type d -name $rottype'.*' | /bin/sed -e 's/^.*\.//' | sort -n | tail -1`
     [ "$oldest" == "" ] && oldest=0
     for (( i=$oldest; i > 0; i-- )); do
       if [ -d $dir.$i ]; then
@@ -453,8 +448,6 @@ function rotate_long {
     debug "daily.$max --> weekly.1"
     $nice mv $backuproot/daily.$max $backuproot/weekly.1
     mkdir -p $backuproot/metadata/weekly.1
-    # Update increment folder date and setup metadata
-    $touch $backuproot/weekly.1
     date +%c%n%s > $backuproot/metadata/weekly.1/rotated
     #if [ -f $backuproot/metadata/daily.$max/created  ]; then
     #   $nice mv $backuproot/metadata/daily.$max/created $backuproot/metadata/weekly.1/
@@ -466,8 +459,6 @@ function rotate_long {
     debug "weekly.$max --> monthly.1"
     $nice mv $backuproot/weekly.$max $backuproot/monthly.1
     mkdir -p $backuproot/metadata/monthly.1
-    # Update increment folder date and setup metadata
-    $touch $backuproot/monthly.1
     date +%c%n%s > $backuproot/metadata/monthly.1/rotated
     #if [ -f $backuproot/metadata/weekly.$max/created  ]; then
     #   $nice mv $backuproot/metadata/weekly.$max/created $backuproot/metadata/weekly.1/
@@ -477,7 +468,7 @@ function rotate_long {
   for rottype in daily weekly monthly; do
     max=$((keep${rottype}+1))
     dir="$backuproot/$rottype"
-    oldest=`find $backuproot -maxdepth 1 -type d -name $rottype'.*' | sed -e 's/^.*\.//' | sort -n | tail -1`
+    oldest=`find $backuproot -maxdepth 1 -type d -name $rottype'.*' | /bin/sed -e 's/^.*\.//' | sort -n | tail -1`
     [ "$oldest" == "" ] && oldest=0 
     # if we've rotated the last backup off the stack, remove it.
     for (( i=$oldest; i >= $max; i-- )); do
@@ -538,7 +529,7 @@ function rotate_long_remote {
     fi
     
     # Rotate the current list of backups, if we can.
-    oldest=\`find $backuproot -maxdepth 1 -type d -name \$rottype'.*' | sed -e 's/^.*\.//' | sort -n | tail -1\`
+    oldest=\`find $backuproot -maxdepth 1 -type d -name \$rottype'.*' | /bin/sed -e 's/^.*\.//' | sort -n | tail -1\`
     [ "\$oldest" == "" ] && oldest=0
     for (( i=\$oldest; i > 0; i-- )); do
       if [ -d \$dir.\$i ]; then
@@ -580,8 +571,6 @@ function rotate_long_remote {
     echo "Debug: daily.\$max --> weekly.1"
     $nice mv $backuproot/daily.\$max $backuproot/weekly.1
     mkdir -p $backuproot/metadata/weekly.1
-    # Update increment folder date and setup metadata
-    $touch $backuproot/weekly.1
     date +%c%n%s > $backuproot/metadata/weekly.1/rotated
     #if [ -f $backuproot/metadata/daily.\$max/created  ]; then
     #   $nice mv $backuproot/metadata/daily.\$max/created $backuproot/metadata/weekly.1/
@@ -593,8 +582,6 @@ function rotate_long_remote {
     echo "Debug: weekly.\$max --> monthly.1"
     $nice mv $backuproot/weekly.\$max $backuproot/monthly.1
     mkdir -p $backuproot/metadata/monthly.1
-    # Update increment folder date and setup metadata
-    $touch $backuproot/monthly.1
     date +%c%n%s > $backuproot/metadata/monthly.1/rotated
     #if [ -f $backuproot/metadata/weekly.\$max/created  ]; then
     #   $nice mv $backuproot/metadata/weekly.\$max/created $backuproot/metadata/weekly.1/
@@ -604,7 +591,7 @@ function rotate_long_remote {
   for rottype in daily weekly monthly; do
     max=\$((keep\${rottype}+1))
     dir="$backuproot/\$rottype"
-    oldest=\`find $backuproot -maxdepth 1 -type d -name \$rottype'.*' | sed -e 's/^.*\.//' | sort -n | tail -1\`
+    oldest=\`find $backuproot -maxdepth 1 -type d -name \$rottype'.*' | /bin/sed -e 's/^.*\.//' | sort -n | tail -1\`
     [ "\$oldest" == "" ] && oldest=0 
     # if we've rotated the last backup off the stack, remove it.
     for (( i=\$oldest; i >= \$max; i-- )); do
@@ -894,45 +881,6 @@ function test_connect {
 
 }
 
-function set_lockfile {
-
-  if [ ! -z "$lockfile" ]; then
-    mkdir -p `dirname $lockfile`
-    if ( set -o noclobber; echo "$$" > "$lockfile" ) &> /dev/null; then
-      trap 'unset_lockfile' INT TERM EXIT
-    else
-      fatal "Could not create lockfile $lockfile, exiting"
-    fi
-  fi
-
-}
-
-function unset_lockfile {
-
-  if [ ! -z "$lockfile" ]; then
-    $rm -f $lockfile || warning "Could not remove lockfile $lockfile"
-  fi
-
-}
-
-function check_lockfile {
-
-  local pid process
-
-  if [ ! -z "$lockfile" ] && [ -f "$lockfile" ]; then
-    pid="`cat $lockfile`"
-    process="`ps --no-headers -o comm $pid`"
-    if [ "$?" == "0" ] && [ "`ps --no-headers -o comm $$`" == "$process" ]; then
-      info "Another backup is running for $lockfile, skipping run"
-      exit
-    else
-      info "Found old lockfile $lockfile, removing it"
-      unset_lockfile  
-    fi
-  fi
-
-}
-
 function set_filelist {
 
   filelist_flag=""
@@ -1144,13 +1092,10 @@ function restore_pipefail {
 # the backup procedure
 
 eval_config
-check_lockfile
-set_lockfile
 set_rsync_options
 start_mux
 stop_services
 mount_rw
-set_pipefail
 
 starttime="`date +%c%n%s`"
 echo "Starting backup at `echo "$starttime" | head -n 1`" >> $log
@@ -1165,21 +1110,21 @@ for SECTION in $include; do
 
   info "Syncing $SECTION on $dest_path..."
   debug $nice $rsync "${rsync_options[@]}" $filelist_flag "$excludes" $batch_option $orig $dest_path
+  set_pipefail
   $nice $rsync "${rsync_options[@]}" $filelist_flag "$excludes" $batch_option $orig $dest_path | tee -a $log
 
   if [ "$?" != "0" ]; then
     fatal "Rsync error when trying to transfer $SECTION"
   fi
 
+  restore_pipefail
   update_metadata
 
 done
 
-restore_pipefail
 mount_ro
 run_fsck
 start_services
-unset_lockfile
 end_mux
 
 echo "Finnishing backup at `date`" >> $log