Improved resume and backup functionnality.

pull/2/head
deajan 11 years ago
parent 3432ba57d6
commit c4f4c9556a

@ -5,9 +5,6 @@
## todo: ## todo:
# add dryrun, DOC: never run dry when already run real or you will lose your deleted file history
# add logging
# OK add resume on error, need max number of runs before stopping resume func
# Need to check SIGHUP / SIGTERM should not be sent to rsync but to TrapStop # Need to check SIGHUP / SIGTERM should not be sent to rsync but to TrapStop
# remote functionnality # remote functionnality
# multiple backups on conflicts # multiple backups on conflicts
@ -659,8 +656,7 @@ function slave_tree_new
fi fi
} }
###### Sync functions ###### Sync function in 10 steps (functions above)
function Sync function Sync
{ {
## Lock master dir ## Lock master dir
@ -668,13 +664,27 @@ function Sync
Log "Starting synchronization task." Log "Starting synchronization task."
if [ -f $STATE_DIR/last-action ] if [ -f $STATE_DIR/last-action ] && [ "$RESUME_SYNC" == "yes" ]
then then
resume_sync=$(cat $STATE_DIR/last-action) resume_sync=$(cat $STATE_DIR/last-action)
if [ "$resume_sync" != "sync.success" ] if [ -f $STATE_DIR/resume-count ]
then
resume_count=$(cat $STATE_DIR/resume-count)
else
resume_count=0
fi
if [ $resume_count -lt $RESUME_TRY ]
then then
Log "WARNING: Trying to resume aborted osync execution on $(stat --format %y $STATE_DIR/last-action) at task [$resume_sync]." if [ "$resume_sync" != "sync.success" ]
then
Log "WARNING: Trying to resume aborted osync execution on $(stat --format %y $STATE_DIR/last-action) at task [$resume_sync]."
echo $(($resume_count+1)) > $STATE_DIR/resume-count
else
resume_sync=none
fi
else else
LogError "Will not resume aborted osync execution. Too much resume tries [$resume_count]."
resume_sync=none resume_sync=none
fi fi
else else
@ -700,27 +710,27 @@ function Sync
slave-replica-deleted-list.success|update-master-replica.fail|update-slave-replica.fail) slave-replica-deleted-list.success|update-master-replica.fail|update-slave-replica.fail)
if [ "$CONFLICT_PREVALANCE" != "master" ] if [ "$CONFLICT_PREVALANCE" != "master" ]
then then
sync_update_master case $resume_sync in
if [ $? != 0 ] none)
then ;&
return 1 slave-replica-deleted-list.success|update-master-replica.fail)
fi sync_update_master
sync_update_slave ;&
if [ $? != 0 ] update-master-replica.success|update-slave-replica.fail)
then sync_update_master
return 1 ;;
fi esac
else else
sync_update_slave case $resume_sync in
if [ $? != 0 ] none)
then ;&
return 1 slave-replica-deleted-list.success|update-slave-replica.fail)
fi sync_update_slave
sync_update_master ;&
if [ $? != 0 ] update-slave-replica.success|update-master-replica.fail)
then sync_update_master
return 1 ;;
fi esac
fi fi
;& ;&
update-slave-replica.success|update-master-replica.success|delete-propagation-slave.fail) update-slave-replica.success|update-master-replica.success|delete-propagation-slave.fail)
@ -739,6 +749,7 @@ function Sync
Log "Finished synchronization task." Log "Finished synchronization task."
echo "sync.success" > $STATE_DIR/last-action echo "sync.success" > $STATE_DIR/last-action
echo "0" > $STATE_DIR/resume-count
} }
function SoftDelete function SoftDelete
@ -831,11 +842,16 @@ function Init
## Conflict options ## Conflict options
if [ "$CONFLICT_BACKUP" != "no" ] if [ "$CONFLICT_BACKUP" != "no" ]
then then
MASTER_CONFLICT="--backup --backup-dir=$MASTER_BACKUP_DIR" MASTER_BACKUP="--backup --backup-dir=$MASTER_BACKUP_DIR"
SLAVE_CONFLICT="--backup --backup-dir=$SLAVE_BACKUP_DIR" SLAVE_BACKUP="--backup --backup-dir=$SLAVE_BACKUP_DIR"
if [ "$CONFLICT_BACKUP_MULTIPLE" == "yes" ]
then
MASTER_BACKUP="$MASTER_BACKUP --suffix .$(date +%Y.%m.%d-%H.%M.%S)"
SLAVE_BACKUP="$SLAVE_BACKUP --suffix .$(date +%Y.%m.%d-%H.%M.%S)"
fi
else else
MASTER_CONFLICT= MASTER_BACKUP=
SLAVE_CONFLICT= SLAVE_BACKUP=
fi fi
## Soft delete options ## Soft delete options

@ -39,10 +39,16 @@ HARD_MAX_EXEC_TIME=36000Ԯ
CONFLICT_PREVALANCE=master CONFLICT_PREVALANCE=master
CONFLICT_BACKUP=yes CONFLICT_BACKUP=yes
CONFLICT_BACKUP_DAYS=30 CONFLICT_BACKUP_DAYS=30
# This can be very space consuming
CONFLICT_BACKUP_MULTIPLE=yes
SOFT_DELETE=yes SOFT_DELETE=yes
SOFT_DELETE_DAYS=30 SOFT_DELETE_DAYS=30
RESUME_SYNC=yes
RESUME_TRY=2
VERBOSE_LOGS=yes VERBOSE_LOGS=yes
DESTINATION_MAILS="ozy@badministrateur.com" DESTINATION_MAILS="ozy@badministrateur.com"

Loading…
Cancel
Save