File: //var/packages/HyperBackup/scripts/start-stop-status
#!/bin/sh
PACKAGE_TARGET=/var/packages/HyperBackup/target
SYNOBACKUP_TOOL_BIN="/usr/syno/bin/synobackup"
SCHEDULE_BACKUPAPP_DSM="SYNO.SDS.Backup.Application"
SCHEDULE_BACKUPAPP_LUN="SYNO.SDS.BackupApp.LUNBackup"
SYNOIMGBKP_TOOL_BIN=$PACKAGE_TARGET/bin/synoimgbkptool
SYNOBACKUP_TASK_RELINK=/var/packages/HyperBackup/scripts/backup/2.x/task_relink
HBED_DIR="/var/lib/hbed/"
# enable/disable SynoRBD into correct state according to state of current list of tasks.
correct_synorbd() {
# According package loading flow, WebAPIs in package is callable in this moment.
/usr/syno/bin/synowebapi --exec 'api=SYNO.Backup.Task' 'method=correct_synorbd' 'version=1'
}
migrate_to_new_synolog() {
OLD_LOG_PATH="/var/log/synolog/synobackup.log"
NEW_LOG_PATH="/var/packages/HyperBackup/var/log/synolog/synobackup.log"
if [ ! -s $NEW_LOG_PATH ]; then
/usr/bin/mkdir -p $(/bin/dirname $NEW_LOG_PATH)
/usr/bin/cp "$OLD_LOG_PATH" "$NEW_LOG_PATH"
fi
}
case $1 in
prestart)
exit 0
;;
start)
if [ -f /var/packages/HyperBackup/tmp/first_start_after_install ]; then
rm -f /var/packages/HyperBackup/tmp/first_start_after_install
/var/packages/HyperBackup/target/bin/update_hyperbackup_ed.sh &
fi
$PACKAGE_TARGET/bin/dsmbackup --clean-backup-snapshot
$PACKAGE_TARGET/bin/dsmbackup --check-and-reset-sched-id
# enable list schedule
if [ -e ${SYNOBACKUP_TOOL_BIN} ]; then
${SYNOBACKUP_TOOL_BIN} --schedule-enable-list-by-app ${SCHEDULE_BACKUPAPP_DSM}
${SYNOBACKUP_TOOL_BIN} --schedule-enable-list-by-app ${SCHEDULE_BACKUPAPP_LUN}
fi
${SYNOIMGBKP_TOOL_BIN} -e || true &
${SYNOIMGBKP_TOOL_BIN} -U || true &
${SYNOIMGBKP_TOOL_BIN} -G -y local && ${SYNOIMGBKP_TOOL_BIN} -M -y local && ${SYNOIMGBKP_TOOL_BIN} -n -y local &
if [ -d "$HBED_DIR" ]; then
"$PACKAGE_TARGET/bin/relink_the_task_of_restore.sh"
/bin/rmdir "$HBED_DIR"
fi
# Run only after list of tasks is stable and won't be modified after this call.
correct_synorbd
# Inorder to keep these two keys after entire DSM restore, move key update from install/uninstall to start/stop.
/usr/syno/bin/synosetkeyvalue /etc.defaults/synoinfo.conf hyperbackup_ed_preview 1
/usr/syno/bin/synosetkeyvalue /etc.defaults/synoinfo.conf hyperbackup_ed_c2_target_preview 1
# Migrate to new synolog.
migrate_to_new_synolog
exit 0
;;
prestop)
$PACKAGE_TARGET/bin/hook/poweroff_backup
if [ $? -eq 1 ]; then
SYNOBACKUP_BACKUP_WARNING=`/bin/get_key_value $PACKAGE_TARGET/ui/texts/$SYNOPKG_DSM_LANGUAGE/strings "backup_poweroff"`
echo $SYNOBACKUP_BACKUP_WARNING > $SYNOPKG_TEMP_LOGFILE
exit 1
fi
$PACKAGE_TARGET/bin/hook/poweroff_restore
if [ $? -eq 1 ]; then
SYNOBACKUP_RESTORE_WARNING=`get_key_value $PACKAGE_TARGET/ui/texts/$SYNOPKG_DSM_LANGUAGE/strings "restore_poweroff"`
echo $SYNOBACKUP_RESTORE_WARNING > $SYNOPKG_TEMP_LOGFILE
exit 1
fi
exit 0
;;
stop)
$PACKAGE_TARGET/bin/dsmbackup --cancel-backup
# disable list schedule
if [ -e ${SYNOBACKUP_TOOL_BIN} ]; then
${SYNOBACKUP_TOOL_BIN} --schedule-disable-list-by-app ${SCHEDULE_BACKUPAPP_DSM}
${SYNOBACKUP_TOOL_BIN} --schedule-disable-list-by-app ${SCHEDULE_BACKUPAPP_LUN}
fi
killall -9 ${SYNOIMGBKP_TOOL_BIN}
killall -9 ${SYNOBACKUP_TASK_RELINK}
$PACKAGE_TARGET/bin/synohbkpvfs_mgr -u
/usr/syno/bin/synosetkeyvalue /etc.defaults/synoinfo.conf hyperbackup_ed_preview ""
/usr/syno/bin/synosetkeyvalue /etc.defaults/synoinfo.conf hyperbackup_ed_c2_target_preview ""
exit 0
;;
status)
exit 0
;;
killall)
exit 0
;;
log)
exit 0
;;
esac