Skip to main content

Script Files

Script files are available for the user to perform different functions in AhsayOBM. They are located in the /usr/local/obm/bin directory.

Parameters of the script file must be configured before running the script. To configure the parameters, open the script file in a text editor like "vi".

Here are the available script files:


RunConfigurator.sh

THe script file is used to run AhsayOBM.


# vi RunConfigurator.sh

Configure the following parameters:

  • SETTING_HOME - the directory to your setting home. If not set, the default directory is "${HOME}/.obm".

    e.g. SETTING_HOME="/root/.obm"

  • DEBUG_MODE - used to enable or disable the debug mode when opening AhsayOBM.

    e.g. DEBUG_MODE="--debug" or DEBUG_MODE=""


#!/bin/sh
############################# RunConfigurator.sh ###############################
# You can use this shell to run the application #
################################################################################
######################### START: User Defined Section ##########################
# ------------------------------- SETTING_HOME ---------------------------------
# | Directory to your setting home. |
# | Default to ${HOME}/.obm when not set. |
# | e.g. SETTING_HOME="${HOME}/.obm" |
# ------------------------------------------------------------------------------
SETTING_HOME=""
# -------------------------------- DEBUG_MODE ----------------------------------
# | Enable/Disable debug mode |
# | e.g. DEBUG_MODE="--debug" |
# | or DEBUG_MODE="" |
# ------------------------------------------------------------------------------
DEBUG_MODE=""
########################## END: User Defined Section ###########################
################################################################################
# R E T R I E V E A P P _ H O M E P A T H #
################################################################################
EXE_DIR=`pwd`
SCRIPT_HOME=`dirname "$0"`
cd "$SCRIPT_HOME"
APP_BIN=`pwd`
APP_HOME=`dirname "$APP_BIN"`
SYSTEM_OS=`uname`
SYSTEM_ARCH=`uname -m`
DEP_LIB_PATH=
OS_NAME=
case "${SYSTEM_OS}" in
 Linux* )
 OS_NAME="Lin"
 ;;
 *BSD* )
 OS_NAME="Fbd"
 ;;
 SunOS )
 OS_NAME="Sos"
 SYSTEM_ARCH=`isainfo -b`
 ;;
 * )
 echo "OS \"${SYSTEM_OS}\" is not supported. Exit now."
 exit 1
 ;;
esac
OS_ARCH=
if [ -z "${DEP_LIB_PATH}" ]; then
 case "${SYSTEM_ARCH}" in
 i[3-6]86 | 32)
 OS_ARCH="X86"
 ;;
 x86_64 | amd64 | 64)
 OS_ARCH="X64"
 ;;
 armv6*)
 OS_ARCH="Av6"
 ;;
 armv7*)
 OS_ARCH="Av7"
 ;;
 armv5*)
 OS_ARCH="Arm"
 ;;
 aarch64*)
 OS_ARCH="A64"
 ;;
 * )
 echo "Arch \"${SYSTEM_ARCH}\" is not supported. Exit now."
 exit 1
 ;;
 esac
 DEP_LIB_PATH=${OS_NAME}${OS_ARCH}
fi
################################################################################
# R E T R I E V E J A V A _ H O M E P A T H #
################################################################################
if [ "Darwin" = "${SYSTEM_OS}" ]; then
 JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Home"
fi
if [ ! -x "$APP_HOME/jvm" ];
then
 echo "'$APP_HOME/jvm' does not exist!"
 if [ ! -n "$JAVA_HOME" ]; then
 echo "Please set JAVA_HOME!"
 exit 0
 else
 ln -sf "$JAVA_HOME" "$APP_HOME/jvm"
 echo "Created JAVA_HOME symbolic link at '$APP_HOME/jvm'"
 fi
fi
if [ ! -x "$APP_HOME/jvm" ];
then
 echo "Please create symbolic link for '$JAVA_HOME' to '$APP_HOME/jvm'"
 exit 0
fi
JAVA_HOME="$APP_HOME/jvm"
# Use alternative executable name to define the GUI execution
if [ "Darwin" = "${SYSTEM_OS}" ]; then
 JAVA_EXE="$JAVA_HOME/bin/java"
else
 JAVA_EXE="$JAVA_HOME/bin/bJW"
fi
# Verify the JAVA_EXE whether it is a valid JAVA Executable or not.
STRING_JAVA_VERSION="java version,openjdk version"
OUTPUT_JAVA_VERSION=`"${JAVA_EXE}" -version 2>&1`
OUTPUT_JVM_SUPPORT=0
BACKUP_IFS=$IFS
IFS=","
for word in $STRING_JAVA_VERSION; do
 if [ `echo "${OUTPUT_JAVA_VERSION}" | grep "${word}" | grep -cv "grep ${word}"`
-le 0 ]
 then
 #echo "The Java Executable \"${JAVA_EXE}\" is not a valid Java Executable.
Exit \""`basename "$0"`"\" now."
 continue;
 else
 OUTPUT_JVM_SUPPORT=1
 break;
 fi
done
IFS=$BACKUP_IFS
if [ $OUTPUT_JVM_SUPPORT -eq 0 ]
then
 echo "The Java Executable \"${JAVA_EXE}\" is not a valid Java Executable. Exit
\""`basename "$0"`"\" now."
 exit 1
fi
################################################################################
# S T A R T - U P #
################################################################################
# Set LD_LIBRARY_PATH for Lotus Notes on Linux
if [ "Linux" = "${SYSTEM_OS}" ]; then
 NOTES_PROGRAM=`cat "$APP_HOME/bin/notesenv"`
 LD_LIBRARY_PATH="$APP_HOME/bin:$NOTES_PROGRAM:$LD_LIBRARY_PATH"
 export NOTES_PROGRAM
else
 LD_LIBRARY_PATH="$APP_HOME/bin:$LD_LIBRARY_PATH"
fi
LD_LIBRARY_PATH="${APP_BIN}/${DEP_LIB_PATH}":".":"${LD_LIBRARY_PATH}"
SHLIB_PATH="$LD_LIBRARY_PATH"
export LD_LIBRARY_PATH SHLIB_PATH
# Change to APP_BIN for JAVA execution
cd "${APP_BIN}"
# Reference path will be used to avoid empty space in the parent directory
LIB_HOME=.
JAVA_OPTS="-Xrs -Xms128m -Xmx2048m -client -Dsun.nio.PageAlignDirectMemory=true"
JNI_PATH="-Djava.library.path=$LIB_HOME:$LIB_HOME/${DEP_LIB_PATH}"
CLASSPATH="$LIB_HOME:$LIB_HOME/cb.jar"
MAIN_CLASS=Gui
# Execute Java VM Runtime for BackupManager
echo "Startup Ahsay Online Backup Manager ... "
"${JAVA_EXE}" $JAVA_OPTS $JNI_PATH -cp $CLASSPATH $MAIN_CLASS --config
"${DEBUG_MODE}" "${APP_HOME}" "${SETTING_HOME}"
################################################################################
# R E S E T A N D E X I T #
################################################################################
cd "${EXE_DIR}"
exit 0

Once you have configured the parameters, save the changes. Use the sh command to run the script.

The AhsayOBM Login Menu will be displayed.


# sh RunConfigurator.sh
Startup Ahsay Online Backup Manager ...
Config file found
Login Menu
----------
 (1). Login
 (2). Change Network Settings
 (3). Forgot Password
 (4). Quit
----------
Your Choice:

ListBackupSet.sh

This script file is used to display the list of backup sets under your backup account.


# vi ListBackupSet.sh

Configure the following parameters:

  • SETTING_HOME - the directory to your setting home. If not set, the default directory is "${HOME}/.obm".

    e.g. SETTING_HOME="/root/.obm"


#!/bin/sh
############################## ListBackupSet.sh ##############################
# You can use this shell script to list all backup sets available under #
# your backup account. #
################################################################################
######################## Start: User Defined Section #########################
# ------------------------------ SETTING_HOME --------------------------------
# | Directory to your setting home. |
# | Default to ${HOME}/.obm when not set. |
# | e.g. SETTING_HOME="${HOME}/.obm" |
# ------------------------------------------------------------------------------
SETTING_HOME=""
########################## END: User Defined Section #########################
################################################################################
# R E T R I E V E A P P _ H O M E P A T H #
################################################################################
EXE_DIR=`pwd`
SCRIPT_HOME=`dirname "$0"`
cd "$SCRIPT_HOME"
APP_BIN=`pwd`
APP_HOME=`dirname "$APP_BIN"`
SYSTEM_OS=`uname`
SYSTEM_ARCH=`uname -m`
DEP_LIB_PATH=
OS_NAME=
case "${SYSTEM_OS}" in
 Linux* )
 OS_NAME="Lin"
 ;;
 *BSD* )
 OS_NAME="Fbd"
 ;;
 Darwin* )
 DEP_LIB_PATH="MacX84"
 ;;
 SunOS )
 OS_NAME="Sos"
 SYSTEM_ARCH=`isainfo -b`
 ;;
 * )
 echo "OS \"${SYSTEM_OS}\" is not supported. Exit now."
 exit 1
 ;;
esac
OS_ARCH=
if [ -z "${DEP_LIB_PATH}" ]; then
 case "${SYSTEM_ARCH}" in
 i[3-6]86 | 32)
 OS_ARCH="X86"
 ;;
 x86_64 | amd64 | 64)
 OS_ARCH="X64"
 ;;
 armv6*)
 OS_ARCH="Av6"
 ;;
 armv7*)
 OS_ARCH="Av7"
 ;;
 armv5*)
 OS_ARCH="Arm"
 ;;
 aarch64*)
 OS_ARCH="A64"
 ;;
 * )
 echo "Arch \"${SYSTEM_ARCH}\" is not supported. Exit now."
 exit 1
 ;;
 esac
 DEP_LIB_PATH=${OS_NAME}${OS_ARCH}
fi
################################################################################
# R E T R I E V E J A V A _ H O M E P A T H #
################################################################################
if [ "Darwin" = "${SYSTEM_OS}" ]; then
 JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Home"
fi
if [ ! -x "$APP_HOME/jvm" ];
then
 echo "'$APP_HOME/jvm' does not exist!"
 if [ ! -n "$JAVA_HOME" ]; then
 echo "Please set JAVA_HOME!"
 exit 0
 else
 ln -sf "$JAVA_HOME" "$APP_HOME/jvm"
 echo "Created JAVA_HOME symbolic link at '$APP_HOME/jvm'"
 fi
fi
if [ ! -x "$APP_HOME/jvm" ];
then
 echo "Please create symbolic link for '$JAVA_HOME' to '$APP_HOME/jvm'"
 exit 0
fi
JAVA_HOME="$APP_HOME/jvm"
JAVA_EXE="$JAVA_HOME/bin/java"
# Verify the JAVA_EXE whether it can be executed or not.
if [ ! -x "${JAVA_EXE}" ]
then
 echo "The Java Executable file \"${JAVA_EXE}\" cannot be executed. Exit
\""`basename "$0"`"\" now."
 exit 1
fi
# Verify the JAVA_EXE whether it is a valid JAVA Executable or not.
STRING_JAVA_VERSION="java version,openjdk version"
OUTPUT_JAVA_VERSION=`"${JAVA_EXE}" -version 2>&1`
OUTPUT_JVM_SUPPORT=0
BACKUP_IFS=$IFS
IFS=","
for word in $STRING_JAVA_VERSION; do
 if [ `echo "${OUTPUT_JAVA_VERSION}" | grep "${word}" | grep -cv "grep ${word}"`
-le 0 ]
 then
 #echo "The Java Executable \"${JAVA_EXE}\" is not a valid Java Executable.
Exit \""`basename "$0"`"\" now."
 continue;
 else
 OUTPUT_JVM_SUPPORT=1
 break;
 fi
done
IFS=$BACKUP_IFS
if [ $OUTPUT_JVM_SUPPORT -eq 0 ]
then
 echo "The Java Executable \"${JAVA_EXE}\" is not a valid Java Executable. Exit
\""`basename "$0"`"\" now."
 exit 1
fi
################################################################################
# J A V A E X E C U T I O N #
################################################################################
# Change to APP_BIN for JAVA execution
cd "${APP_BIN}"
# Reference path will be used to avoid empty space in the parent directory
LIB_HOME=.
JAVA_OPTS="-Xrs -Xms128m -Xmx2048m -client -Dsun.nio.PageAlignDirectMemory=true"
JNI_PATH="-Djava.library.path=$LIB_HOME:$LIB_HOME/${DEP_LIB_PATH}"
CLASSPATH="$LIB_HOME:$LIB_HOME/cb.jar"
MAIN_CLASS=ListBackupSet
echo "Using APP_HOME : ${APP_HOME}"
echo "Using SETTING_HOME : ${SETTING_HOME}"
# API Arguments: ListBackupSet [APP_HOME] [SETTING_HOME]
# Do not include double-quote for java options, jni path, classpath and main class
# Only apply double-quote for path to java executable and execution arguments
"${JAVA_EXE}" $JAVA_OPTS $JNI_PATH -cp $CLASSPATH $MAIN_CLASS "${APP_HOME}"
"${SETTING_HOME}"
################################################################################
# R E S E T A N D E X I T #
################################################################################
cd "${EXE_DIR}"
exit 0

Once you have configured the parameters, save the changes. Use the sh command to run the script. The list of backup sets will be displayed.


# sh ListBackupSet.sh
Using APP_HOME : /usr/local/obm
Using SETTING_HOME :
BackupSet Name= BackupSet-1, ID= 1673399150069

ListBackupJob.sh

The script file is used to display the list of backup jobs of a particular backup set.


# vi ListBackupJob.sh

Configure the following parameters:

  • SETTING_HOME - the directory to your setting home. If not set, the default directory is “${HOME}/.obm”.

    e.g. SETTING_HOME="/root/.obm"

  • BACKUP_SET - name of the backup set that you want to list the backup job. There are two (2) ways to specify the backup set; by using the backup set name or by backup set ID. If the backup set name is not in English, use the backup set ID. You can leave this blank if you only have one (1) backup set.

    e.g. BACKUP_SET="1673399150069" or BACKUP_SET="BackupSet-1"

  • BACKUP_DEST - name of the destination of the backup set. There are two (2) ways to specify the destination; by using the destination name or destination ID. If the destination name is not in English, use the destination ID. You can leave this blank if you only have one (1) backup destination.

    e.g. BACKUP_DEST="1119083740107" or BACKUP_DEST="AhsayCBS"


#!/bin/sh
############################## ListBackupJob.sh ##############################
# You can use this shell script to list all backup job which ran under #
# this backup set. #
################################################################################
######################## Start: User Defined Section #########################
# ------------------------------ SETTING_HOME --------------------------------
# | Directory to your setting home. |
# | Default to ${HOME}/.obm when not set. |
# | e.g. SETTING_HOME="${HOME}/.obm" |
# ------------------------------------------------------------------------------
SETTING_HOME=""
# ------------------------------- BACKUP_SET ---------------------------------
# | The name or ID of the backup set that you want to run |
# | If backup set name is not in English, please use BackupSetID |
# | e.g. BACKUP_SET="1119083740107" |
# | or BACKUP_SET="FileBackupSet-1" |
# | |
# | You can leave this parameter blank if you have only 1 backup set. |
# ------------------------------------------------------------------------------
BACKUP_SET=""
# ------------------------------ BACKUP_DEST ---------------------------------
# | The name or ID of the destination that you want to run |
# | If destination name is not in English, please use DestinationID |
# | e.g. BACKUP_DEST="1119083740107" |
# | or BACKUP_DEST="CBS" |
# | |
# | You can leave this parameter blank if you have only 1 destination. |
# ------------------------------------------------------------------------------
BACKUP_DEST=""
########################## END: User Defined Section #########################
################################################################################
# S C R I P T U S A G E #
################################################################################
# Input Arguments will overwrite the above settings
# defined in 'User Defined Section'.
if [ $# -ge 1 ]; then
 if [ -n "$1" ]; then
 BACKUP_SET="$1"
 fi
 if [ -n "$2" ]; then
 BACKUP_DEST="$2"
 fi
fi
################################################################################
# R E T R I E V E A P P _ H O M E P A T H #
################################################################################
EXE_DIR=`pwd`
SCRIPT_HOME=`dirname "$0"`
cd "$SCRIPT_HOME"
APP_BIN=`pwd`
APP_HOME=`dirname "$APP_BIN"`
SYSTEM_OS=`uname`
SYSTEM_ARCH=`uname -m`
DEP_LIB_PATH=
OS_NAME=
case "${SYSTEM_OS}" in
 Linux* )
 OS_NAME="Lin"
 ;;
 *BSD* )
 OS_NAME="Fbd"
 ;;
 Darwin* )
 DEP_LIB_PATH="MacX84"
 ;;
 SunOS )
 OS_NAME="Sos"
 SYSTEM_ARCH=`isainfo -b`
 ;;
 * )
 echo "OS \"${SYSTEM_OS}\" is not supported. Exit now."
 exit 1
 ;;
esac
OS_ARCH=
if [ -z "${DEP_LIB_PATH}" ]; then
 case "${SYSTEM_ARCH}" in
 i[3-6]86 | 32)
 OS_ARCH="X86"
 ;;
 x86_64 | amd64 | 64)
 OS_ARCH="X64"
 ;;
 armv6*)
 OS_ARCH="Av6"
 ;;
 armv7*)
 OS_ARCH="Av7"
 ;;
 armv5*)
 OS_ARCH="Arm"
 ;;
 aarch64*)
 OS_ARCH="A64"
 ;;
 * )
 echo "Arch \"${SYSTEM_ARCH}\" is not supported. Exit now."
 exit 1
 ;;
 esac
 DEP_LIB_PATH=${OS_NAME}${OS_ARCH}
fi
################################################################################
# R E T R I E V E J A V A _ H O M E P A T H #
################################################################################
if [ "Darwin" = "${SYSTEM_OS}" ]; then
 JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Home"
fi
if [ ! -x "$APP_HOME/jvm" ];
then
 echo "'$APP_HOME/jvm' does not exist!"
 if [ ! -n "$JAVA_HOME" ]; then
 echo "Please set JAVA_HOME!"
 exit 0
 else
 ln -sf "$JAVA_HOME" "$APP_HOME/jvm"
 echo "Created JAVA_HOME symbolic link at '$APP_HOME/jvm'"
 fi
fi
if [ ! -x "$APP_HOME/jvm" ];
then
 echo "Please create symbolic link for '$JAVA_HOME' to '$APP_HOME/jvm'"
 exit 0
fi
JAVA_HOME="$APP_HOME/jvm"
JAVA_EXE="$JAVA_HOME/bin/java"
# Verify the JAVA_EXE whether it can be executed or not.
if [ ! -x "${JAVA_EXE}" ]
then
 echo "The Java Executable file \"${JAVA_EXE}\" cannot be executed. Exit
\""`basename "$0"`"\" now."
 exit 1
fi
# Verify the JAVA_EXE whether it is a valid JAVA Executable or not.
STRING_JAVA_VERSION="java version,openjdk version"
OUTPUT_JAVA_VERSION=`"${JAVA_EXE}" -version 2>&1`
OUTPUT_JVM_SUPPORT=0
BACKUP_IFS=$IFS
IFS=","
for word in $STRING_JAVA_VERSION; do
 if [ `echo "${OUTPUT_JAVA_VERSION}" | grep "${word}" | grep -cv "grep ${word}"`
-le 0 ]
 then
 #echo "The Java Executable \"${JAVA_EXE}\" is not a valid Java Executable.
Exit \""`basename "$0"`"\" now."
 continue;
 else
 OUTPUT_JVM_SUPPORT=1
 break;
 fi
done
IFS=$BACKUP_IFS
if [ $OUTPUT_JVM_SUPPORT -eq 0 ]
then
 echo "The Java Executable \"${JAVA_EXE}\" is not a valid Java Executable. Exit
\""`basename "$0"`"\" now."
 exit 1
fi
################################################################################
# J A V A E X E C U T I O N #
################################################################################
# Change to APP_BIN for JAVA execution
cd "${APP_BIN}"
# Reference path will be used to avoid empty space in the parent directory
LIB_HOME=.
JAVA_OPTS="-Xrs -Xms128m -Xmx2048m -client -Dsun.nio.PageAlignDirectMemory=true"
JNI_PATH="-Djava.library.path=$LIB_HOME:$LIB_HOME/${DEP_LIB_PATH}"
CLASSPATH="$LIB_HOME:$LIB_HOME/cb.jar"
MAIN_CLASS=ListBackupJob
echo "Using APP_HOME : ${APP_HOME}"
echo "Using SETTING_HOME : ${SETTING_HOME}"
echo "Using BACKUP_SET : ${BACKUP_SET}"
# API Arguments: ListBackupJob [APP_HOME] [BACKUP_SET] [BACKUP_DEST]
[SETTING_HOME]
# Do not include double-quote for java options, jni path, classpath and
# main class.
# Only apply double-quote for path to java executable and execution arguments
"${JAVA_EXE}" $JAVA_OPTS $JNI_PATH -cp $CLASSPATH $MAIN_CLASS "--apphome=${APP_HOME}" "--backup-set=${BACKUP_SET}" "--backup-dest=${BACKUP_DEST}" "--
setting-home=${SETTING_HOME}"
################################################################################
# R E S E T A N D E X I T #
################################################################################
cd "${EXE_DIR}"
exit 0

Once you have configured the parameters, save the changes. Use the sh command to run the script. The list of backup jobs of a specific backup set will then be displayed.


# sh ListBackupJob.sh
Using APP_HOME : /usr/local/obm
Using SETTING_HOME :
Using BACKUP_SET :
BackupSet-1 [1673399150069]
2023-01-11-10-37-57

RunBackupSet.sh

The script file is used to manually run a backup.


# vi RunBackupSet.sh

Configure the following:

  • BACKUP_SET - name of the backup set which you want to backup. There are two (2) ways to specify the backup set; by using the backup set name or by backup set ID. If the backup set name is not in English, use the backup set ID. You can leave this blank if you only have one (1) backup set.

    e.g. BACKUP_SET="1673399150069" or BACKUP_SET="BackupSet-1"

  • BACKUP_DESTS - name of the destination where you want your backup to be stored. There are two (2) ways to specify the destination; by using the destination name or destination ID. If the destination name is not in English, use the destination ID. You can leave this blank if you only have one (1) backup destination. If you want to backup to several destinations, use a comma to separate the destination name or use “ALL” to backup to all destinations

    e.g. BACKUP_DESTS="1119083740107" or BACKUP_DESTS="AhsayCBS"

  • BACKUP_TYPE - the backup set type. You do not need to change this if you are backing up a File backup set. There are four (4) options available for this: File, Database, Differential and Log.

    e.g. BACKUP_TYPE="FILE" for File backup

    BACKUP_TYPE="DATABASE" for Full database backup

    BACKUP_TYPE="DIFFERENTIAL" for Differential database backup

    BACKUP_TYPE="LOG" for Log database backup

  • SETTING_HOME - the directory to your setting home. If not set, the default directory is “${HOME}/.obm”.

    e.g. SETTING_HOME="/root/.obm"

  • DELTA_MODE - the In-File Delta setting. There are three (3) options available for this: Incremental, Differential and Full.

    e.g. DELTA_MODE="I" for Incremental In-File Delta backup

    DELTA_MODE="D" for Differential In-File Delta backup

    DELTA_MODE="F" for Full File backup

    DELTA_MODE="" for using backup set In-File Delta setting

  • CLEANUP_MODE - used to remove obsolete files from your backup destination after a backup has been run. There are two (2) options available for this: ENABLE-CLEANUP and DISABLE-CLEANUP.

    e.g. CLEANUP_MODE="ENABLE-CLEANUP" OR CLEANUP_MODE="DISABLE-CLEANUP"

  • DEBUG_MODE - used to enable or disable debug for a backup job. There are two (2) options available for this: ENABLE-DEBUG and DISABLE-DEBUG.

    e.g. DEBUG_MODE="ENABLE-DEBUG" or DEBUG_MODE="DISABLE-DEBUG"


#!/bin/sh
############################## RunBackupSet.sh ###############################
# You can use this shell script to run any of your backup sets from the #
# command line. Just customize the "User Defined Section" below with your #
# values for your backup action. #
################################################################################
######################### START: User Defined Section ##########################
# --------------------------------- BACKUP_SET ---------------------------------
# | The name or ID of the backup set that you want to run |
# | If backup set name is not in English, please use ID instead. |
# | e.g. BACKUP_SET="1119083740107" |
# | or BACKUP_SET="FileBackupSet-1" |
# | |
# | You can leave this parameter blank if you have only 1 backup set. |
# ------------------------------------------------------------------------------
BACKUP_SET=""
# -------------------------------- BACKUP_DESTS --------------------------------
# | The list of name or ID of the backup destinations that you want to run. |
# | If backup destination name is not in English, please use ID instead. |
# | e.g. BACKUP_DESTS="1740107119083" |
# | or BACKUP_DESTS="Destination-1,Destination-2" |
# | or BACKUP_DESTS="ALL" |
# | |
# | You can specify multiple destinations in comma-separated format, |
# | or use "ALL" to run backup for all destinations. |
# ------------------------------------------------------------------------------
BACKUP_DESTS="ALL"
# -------------------------------- BACKUP_TYPE ---------------------------------
# | Set backup type. You don't need to change this if you are backing up a |
# | file backup set. |
# | Options available: FILE/DATABASE/DIFFERENTIAL/LOG |
# | e.g. BACKUP_TYPE="FILE" for file backup |
# | or BACKUP_TYPE="DATABASE" for Full database backup |
# | or BACKUP_TYPE="DIFFERENTIAL" for Differential database backup |
# | or BACKUP_TYPE="LOG" for Log database backup |
# ------------------------------------------------------------------------------
BACKUP_TYPE="FILE"
# -------------------------------- SETTING_HOME --------------------------------
# | Directory to your setting home. |
# | Default to ${HOME}/.obm when not set. |
# | e.g. SETTING_HOME="${HOME}/.obm" |
# ------------------------------------------------------------------------------
SETTING_HOME=""
# --------------------------------- DELTA_MODE ---------------------------------
# | Set In-File Delta mode. |
# | Options available: Incremental/Differential/Full (I/D/F) |
# | e.g. DELTA_MODE="I" for Incremental In-file delta backup |
# | or DELTA_MODE="D" for Differential In-file delta backup |
# | or DELTA_MODE="F" for Full File backup |
# | or DELTA_MODE="" for using backup set in-file delta setting |
# ------------------------------------------------------------------------------
DELTA_MODE=""
# -------------------------------- CLEANUP_MODE --------------------------------
# | You can enable Cleanup mode to remove obsolete files from your backup |
# | destinations after backup. |
# | Options available: ENABLE-CLEANUP/DISABLE-CLEANUP |
# | e.g. CLEANUP_MODE="ENABLE-CLEANUP" |
# | or CLEANUP_MODE="DISABLE-CLEANUP" |
# ------------------------------------------------------------------------------
CLEANUP_MODE="DISABLE-CLEANUP"
# --------------------------------- DEBUG_MODE ---------------------------------
# | Set Debug mode. |
# | Options available: ENABLE-DEBUG/DISABLE-DEBUG |
# | e.g. DEBUG_MODE="ENABLE-DEBUG" |
# | or DEBUG_MODE="DISABLE-DEBUG" |
# ------------------------------------------------------------------------------
DEBUG_MODE="DISABLE-DEBUG"
########################## END: User Defined Section ###########################
################################################################################
# S C R I P T U S A G E #
################################################################################
# Input Arguments will overwrite the above settings
# defined in 'User Defined Section'.
if [ $# -ge 1 ]; then
 if [ -n "$1" ]; then
 BACKUP_SET="$1"
 fi
fi
################################################################################
# R E T R I E V E A P P _ H O M E P A T H #
################################################################################
EXE_DIR=`pwd`
SCRIPT_HOME=`dirname "$0"`
cd "$SCRIPT_HOME"
APP_BIN=`pwd`
APP_HOME=`dirname "$APP_BIN"`
SYSTEM_OS=`uname`
SYSTEM_ARCH=`uname -m`
DEP_LIB_PATH=
OS_NAME=
case "${SYSTEM_OS}" in
 Linux* )
 OS_NAME="Lin"
 ;;
 *BSD* )
 OS_NAME="Fbd"
 ;;
 SunOS )
 OS_NAME="Sos"
 SYSTEM_ARCH=`isainfo -b`
 ;;
 * )
 echo "OS \"${SYSTEM_OS}\" is not supported. Exit now."
 exit 1
 ;;
esac
OS_ARCH=
if [ -z "${DEP_LIB_PATH}" ]; then
 case "${SYSTEM_ARCH}" in
 i[3-6]86 | 32)
 OS_ARCH="X86"
 ;;
 x86_64 | amd64 | 64)
 OS_ARCH="X64"
 ;;
 armv6*)
 OS_ARCH="Av6"
 ;;
 armv7*)
 OS_ARCH="Av7"
 ;;
 armv5*)
 OS_ARCH="Arm"
 ;;
 aarch64*)
 OS_ARCH="A64"
 ;;
 * )
 echo "Arch \"${SYSTEM_ARCH}\" is not supported. Exit now."
 exit 1
 ;;
 esac
 DEP_LIB_PATH=${OS_NAME}${OS_ARCH}
fi
################################################################################
# R E T R I E V E J A V A _ H O M E P A T H #
################################################################################
if [ "Darwin" = "${SYSTEM_OS}" ]; then
 JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Home"
fi
if [ ! -x "$APP_HOME/jvm" ];
then
 echo "'$APP_HOME/jvm' does not exist!"
 if [ ! -n "$JAVA_HOME" ]; then
 echo "Please set JAVA_HOME!"
 exit 0
 else
 ln -sf "$JAVA_HOME" "$APP_HOME/jvm"
 if [ ! -x "$APP_HOME/jvm" ];
 then
 echo "Please create symbolic link for '$JAVA_HOME' to '$APP_HOME/jvm'"
 exit 0
 else
 echo "Created JAVA_HOME symbolic link at '$APP_HOME/jvm'"
 fi
 fi
fi
JAVA_HOME="$APP_HOME/jvm"
JAVA_EXE="$JAVA_HOME/bin/java"
# Verify the JAVA_EXE whether it can be executed or not.
if [ ! -x "${JAVA_EXE}" ]
then
 echo "The Java Executable file \"${JAVA_EXE}\" cannot be executed. Exit
\""`basename "$0"`"\" now."
 exit 1
fi
# Verify the JAVA_EXE whether it is a valid JAVA Executable or not.
STRING_JAVA_VERSION="java version,openjdk version"
OUTPUT_JAVA_VERSION=`"${JAVA_EXE}" -version 2>&1`
OUTPUT_JVM_SUPPORT=0
BACKUP_IFS=$IFS
IFS=","
for word in $STRING_JAVA_VERSION; do
 if [ `echo "${OUTPUT_JAVA_VERSION}" | grep "${word}" | grep -cv "grep ${word}"`
-le 0 ]
 then
 #echo "The Java Executable \"${JAVA_EXE}\" is not a valid Java Executable.
Exit \""`basename "$0"`"\" now."
 continue;
 else
 OUTPUT_JVM_SUPPORT=1
 break;
 fi
done
IFS=$BACKUP_IFS
if [ $OUTPUT_JVM_SUPPORT -eq 0 ]
then
 echo "The Java Executable \"${JAVA_EXE}\" is not a valid Java Executable. Exit
\""`basename "$0"`"\" now."
 exit 1
fi
################################################################################
# E X E C U T I O N J A V A P R O P E R T I E S #
################################################################################
# Set LD_LIBRARY_PATH for Lotus Notes on Linux
if [ "Linux" = "${SYSTEM_OS}" ];
then
 NOTES_PROGRAM=`cat "$APP_HOME/bin/notesenv"`
 LD_LIBRARY_PATH="$APP_HOME/bin:$NOTES_PROGRAM:$LD_LIBRARY_PATH"
 export NOTES_PROGRAM
else
 LD_LIBRARY_PATH="$APP_HOME/bin:$LD_LIBRARY_PATH"
fi
LD_LIBRARY_PATH="${APP_BIN}/${DEP_LIB_PATH}":".":"${LD_LIBRARY_PATH}"
SHLIB_PATH="$LD_LIBRARY_PATH"
export LD_LIBRARY_PATH SHLIB_PATH
################################################################################
# J A V A E X E C U T I O N #
################################################################################
# Change to APP_BIN for JAVA execution
cd "${APP_BIN}"
# Reference path will be used to avoid empty space in the parent directory
LIB_HOME=.
JAVA_OPTS="-Xrs -Xms128m -Xmx2048m -XX:MaxDirectMemorySize=512m -client -
Dsun.nio.PageAlignDirectMemory=true"
JNI_PATH="-Djava.library.path=$LIB_HOME:$LIB_HOME/${DEP_LIB_PATH}"
CLASSPATH="$LIB_HOME:$LIB_HOME/cb.jar"
MAIN_CLASS=RunBackupSet
echo "-"
echo "Using APP_HOME : $APP_HOME"
echo "Using SETTING_HOME : $SETTING_HOME"
echo "Using JAVA_HOME : $JAVA_HOME"
echo "Using JAVA_EXE : $JAVA_EXE"
echo "Using JAVA_OPTS : $JAVA_OPTS"
echo "Using JNI_PATH : $JNI_PATH"
echo "Using CLASSPATH : $CLASSPATH"
echo "-"
echo "Running Backup Set - '$BACKUP_SET' ..."
# API Arguments: RunBackupSet [APP_HOME] [BACKUP_SET] [BACKUP_DESTS] [BACKUP_TYPE]
[SETTING_HOME] [DELTA_MODE] [CLEANUP_MODE] [DEBUG_MODE]
# Do not include double-quote for java options, jni path, classpath and
# main class.
# Only apply double-quote for path to java executable and execution arguments
"${JAVA_EXE}" $JNI_PATH -cp $CLASSPATH $JAVA_OPTS $MAIN_CLASS "${APP_HOME}"
"${BACKUP_SET}" "${BACKUP_DESTS}" "${BACKUP_TYPE}" "${SETTING_HOME}"
"${DELTA_MODE}" "${CLEANUP_MODE}" "${DEBUG_MODE}"
################################################################################
# R E S E T A N D E X I T #
################################################################################
cd "${EXE_DIR}"
exit 0

Once you have configured the parameters, save the changes. Use the sh command to run the script. The backup will be run manually.


# sh RunBackupSet.sh
-
Using APP_HOME : /usr/local/obm
Using SETTING_HOME :
Using JAVA_HOME : /usr/local/obm/jvm
Using JAVA_EXE : /usr/local/obm/jvm/bin/java
Using JAVA_OPTS : -Xrs -Xms128m -Xmx2048m -XX:MaxDirectMemorySize=512m -client
-Dsun.nio.PageAlignDirectMemory=true
Using JNI_PATH : -Djava.library.path=.:./LinX64
Using CLASSPATH : .:./cb.jar
-
Running Backup Set - '' ...
[2023/01/11 11:34:24] [info] [-] Start [ AhsayOBM v9.5.2.0 ]
[2023/01/11 11:34:24] [info] [-] Saving encrypted backup set encryption keys to
server...
[2023/01/11 11:34:25] [info] [1673399208203] Start Backup ... [Deduplication:
enabled, Deduplication scope: All files within the same backup set, Migrate Data:
disabled, Chunking: CDC(64 K-256 K)]
[2023/01/11 11:34:25] [info] [1673399208203] Using Temporary Directory
/tmp/1673399150069/OBS@1673399208203
[2023/01/11 11:34:27] [info] [1673399208203] Index file does not exist in the
destination backup job folder "Current"
[2023/01/11 11:34:27] [info] [1673399208203] Create new index since no valid index
exist on both local and destination
[2023/01/11 11:34:27] [info] [-] Start running pre-commands
[2023/01/11 11:34:27] [info] [-] Finished running pre-commands
[2023/01/11 11:34:27] [info] [1673399208203] Downloading server file list...
[2023/01/11 11:34:28] [info] [1673399208203] Index file does not exist in the
destination backup job folder "Current"
[2023/01/11 11:34:28] [info] [1673399208203] Create new index since no valid index
exist on both local and destination
[2023/01/11 11:34:28] [info] [1673399208203] Downloading server file list...
Completed
[2023/01/11 11:34:29] [info] [1673399208203] Reading backup source from hard
disk...
[2023/01/11 11:34:29] [info] [1673399208203] Reading backup source from hard
disk... Completed
[2023/01/11 11:34:29] [info] [1673399208203] [New Directory]... /
[2023/01/11 11:34:29] [info] [1673399208203] [New Directory]... /usr
[2023/01/11 11:34:29] [info] [1673399208203] [New Directory]... /root
[2023/01/11 11:34:29] [info] [1673399208203] [New Directory]... /usr
[2023/01/11 11:34:29] [info] [1673399208203] [New Directory]... /root
[2023/01/11 11:34:29] [info] [1673399208203] [New Directory]... /root/testfiles
[2023/01/11 11:34:29] [info] [1673399208203] [New Directory]... /usr/local
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 48% of "/root/
testfiles/file-100kB.doc"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 65% of "/root/
testfiles/file-100kB.doc"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 81% of "/root/
testfiles/file-100kB.doc"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 11% of "/root/
testfiles/file-500kB.docx"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 97% of "/root/
testfiles/file-100kB.doc"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 100% of "/root/
testfiles/file-100kB.doc"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 23% of "/root/
testfiles/file-500kB.docx"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 35% of "/root/
testfiles/file-500kB.docx"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 47% of "/root/
testfiles/file-500kB.docx"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 100% of "/root/
testfiles/file_11.xlsx"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 59% of "/root/
testfiles/file-500kB.docx"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 71% of "/root/
testfiles/file-500kB.docx"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 83% of "/root/
testfiles/file-500kB.docx"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 95% of "/root/
testfiles/file-500kB.docx"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 100% of "/root/
testfiles/file-500kB.docx"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 13% of "/root/
testfiles/file_250kB.ppt"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 26% of "/root/
testfiles/file_250kB.ppt"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 39% of "/root/
testfiles/file_250kB.ppt"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 52% of "/root/
testfiles/file_250kB.ppt"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 85% of "/root/
testfiles/file_250kB.ppt"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 100% of "/root/
testfiles/file_250kB.ppt"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 10% of "/root/
testfiles/file_1MG.wav"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 10% of "/root/
testfiles/famouspaintings.epub"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 21% of "/root/
testfiles/file_1MG.wav"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 32% of "/root/
testfiles/file_1MG.wav"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 42% of "/root/
testfiles/file_1MG.wav"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 53% of "/root/
testfiles/file_1MG.wav"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 64% of "/root/
testfiles/file_1MG.wav"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 20% of "/root/
testfiles/famouspaintings.epub"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 74% of "/root/
testfiles/file_1MG.wav"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 85% of "/root/
testfiles/file_1MG.wav"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 96% of "/root/
testfiles/file_1MG.wav"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 100% of "/root/
testfiles/file_1MG.wav"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 100% of "/root/
testfiles/sample2.txt"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 10% of "/root/
testfiles/file_480_1_5MG.mp4"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 20% of "/root/
testfiles/file_480_1_5MG.mp4"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 30% of "/root/
testfiles/file_480_1_5MG.mp4"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 30% of "/root/
testfiles/famouspaintings.epub"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 40% of "/root/
testfiles/file_480_1_5MG.mp4"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 50% of "/root/
testfiles/file_480_1_5MG.mp4"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 60% of "/root/
testfiles/file_480_1_5MG.mp4"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 70% of "/root/
testfiles/file_480_1_5MG.mp4"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 80% of "/root/
testfiles/file_480_1_5MG.mp4"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 90% of "/root/
testfiles/file_480_1_5MG.mp4"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 100% of "/root/
testfiles/file_480_1_5MG.mp4"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 100% of "/root/
testfiles/sample3.txt"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 10% of "/root/
testfiles/file_700KB.mp3"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 20% of "/root/
testfiles/file_700KB.mp3"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 30% of "/root/
testfiles/file_700KB.mp3"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 40% of "/root/
testfiles/famouspaintings.epub"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 40% of "/root/
testfiles/file_700KB.mp3"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 50% of "/root/
testfiles/file_700KB.mp3"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 60% of "/root/
testfiles/file_700KB.mp3"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 70% of "/root/
testfiles/file_700KB.mp3"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 80% of "/root/
testfiles/file_700KB.mp3"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 90% of "/root/
testfiles/file_700KB.mp3"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 100% of "/root/
testfiles/file_700KB.mp3"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 100% of "/root/
testfiles/sample1.txt"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 49% of "/root/
testfiles/sample2.pdf"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 74% of "/root/
testfiles/sample2.pdf"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 99% of "/root/
testfiles/sample2.pdf"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 100% of "/root/
testfiles/sample2.pdf"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 10% of "/root/
testfiles/sample_640×426.bmp"
[2023/01/11 11:34:29] [info] [1673399208203] [New File]... 20% of "/root/
testfiles/sample_640×426.bmp"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 30% of "/root/
testfiles/sample_640×426.bmp"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 50% of "/root/
testfiles/famouspaintings.epub"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 40% of "/root/
testfiles/sample_640×426.bmp"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 52% of "/root/
testfiles/sample_640×426.bmp"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 62% of "/root/
testfiles/sample_640×426.bmp"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 72% of "/root/
testfiles/sample_640×426.bmp"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 84% of "/root/
testfiles/sample_640×426.bmp"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 96% of "/root/
testfiles/sample_640×426.bmp"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 100% of "/root/
testfiles/sample_640×426.bmp"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 60% of "/root/
testfiles/famouspaintings.epub"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 10% of "/root/
testfiles/sample3.pdf"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 20% of "/root/
testfiles/sample3.pdf"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 30% of "/root/
testfiles/sample3.pdf"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 41% of "/root/
testfiles/sample3.pdf"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 52% of "/root/
testfiles/sample3.pdf"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 70% of "/root/
testfiles/famouspaintings.epub"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 62% of "/root/
testfiles/sample3.pdf"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 73% of "/root/
testfiles/sample3.pdf"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 83% of "/root/
testfiles/sample3.pdf"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 94% of "/root/
testfiles/sample3.pdf"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 100% of "/root/
testfiles/sample3.pdf"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 80% of "/root/
testfiles/famouspaintings.epub"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 10% of "/root/
testfiles/sample_1280×853.bmp"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 90% of "/root/
testfiles/famouspaintings.epub"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 20% of "/root/
testfiles/sample_1280×853.bmp"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 30% of "/root/
testfiles/sample_1280×853.bmp"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 100% of "/root/
testfiles/famouspaintings.epub"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 11% of "/root/
testfiles/sample1.pdf"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 40% of "/root/
testfiles/sample_1280×853.bmp"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 25% of "/root/
testfiles/sample1.pdf"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 36% of "/root/
testfiles/sample1.pdf"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 47% of "/root/
testfiles/sample1.pdf"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 59% of "/root/
testfiles/sample1.pdf"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 70% of "/root/
testfiles/sample1.pdf"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 81% of "/root/
testfiles/sample1.pdf"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 50% of "/root/
testfiles/sample_1280×853.bmp"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 92% of "/root/
testfiles/sample1.pdf"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 100% of "/root/
testfiles/sample1.pdf"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 10% of "/root/
testfiles/sample_1280×853.jpg"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 20% of "/root/
testfiles/sample_1280×853.jpg"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 30% of "/root/
testfiles/sample_1280×853.jpg"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 40% of "/root/
testfiles/sample_1280×853.jpg"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 50% of "/root/
testfiles/sample_1280×853.jpg"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 60% of "/root/
testfiles/sample_1280×853.jpg"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 70% of "/root/
testfiles/sample_1280×853.jpg"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 80% of "/root/
testfiles/sample_1280×853.jpg"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 90% of "/root/
testfiles/sample_1280×853.jpg"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 100% of "/root/
testfiles/sample_1280×853.jpg"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 10% of "/root/
testfiles/sample_640×426.jpg"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 20% of "/root/
testfiles/sample_640×426.jpg"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 30% of "/root/
testfiles/sample_640×426.jpg"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 40% of "/root/
testfiles/sample_640×426.jpg"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 50% of "/root/
testfiles/sample_640×426.jpg"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 60% of "/root/
testfiles/sample_640×426.jpg"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 70% of "/root/
testfiles/sample_640×426.jpg"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 80% of "/root/
testfiles/sample_640×426.jpg"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 90% of "/root/
testfiles/sample_640×426.jpg"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 100% of "/root/
testfiles/sample_640×426.jpg"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 100% of "/root/
testfiles/file_10.xls"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 60% of "/root/
testfiles/sample_1280×853.bmp"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 10% of "/root/
testfiles/sample_640×426.tiff"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 20% of "/root/
testfiles/sample_640×426.tiff"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 32% of "/root/
testfiles/sample_640×426.tiff"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 42% of "/root/
testfiles/sample_640×426.tiff"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 70% of "/root/
testfiles/sample_1280×853.bmp"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 52% of "/root/
testfiles/sample_640×426.tiff"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 64% of "/root/
testfiles/sample_640×426.tiff"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 74% of "/root/
testfiles/sample_640×426.tiff"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 84% of "/root/
testfiles/sample_640×426.tiff"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 80% of "/root/
testfiles/sample_1280×853.bmp"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 94% of "/root/
testfiles/sample_640×426.tiff"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 100% of "/root/
testfiles/sample_640×426.tiff"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 90% of "/root/
testfiles/sample_1280×853.bmp"
[2023/01/11 11:34:30] [info] [1673399208203] [New File]... 100% of "/root/
testfiles/sample_1280×853.bmp"
[2023/01/11 11:34:31] [info] [1673399208203] Start validating the presence and
size of backup data in destination "AhsayCBS"...
[2023/01/11 11:34:31] [info] [1673399208203] File: "1673399150069/blocks/2023-01-
11-11-34-08/0/000000.bak", Size: 8,374,720, OK
[2023/01/11 11:34:31] [info] [1673399208203] File: "1673399150069/blocks/2023-01-
11-11-34-08/0/000001.bak", Size: 8,364,992, OK
[2023/01/11 11:34:31] [info] [1673399208203] Finished validating the presence and
size of backup data in destination "AhsayCBS"
[2023/01/11 11:34:31] [info] [1673399208203] Total New Files = 20
[2023/01/11 11:34:31] [info] [1673399208203] Total New Directories = 5
[2023/01/11 11:34:31] [info] [1673399208203] Total New Links = 0
[2023/01/11 11:34:31] [info] [1673399208203] Total Updated Files = 0
[2023/01/11 11:34:31] [info] [1673399208203] Total Attributes Changed Files = 0
[2023/01/11 11:34:31] [info] [1673399208203] Total Deleted Files = 0
[2023/01/11 11:34:31] [info] [1673399208203] Total Deleted Directories = 0
[2023/01/11 11:34:31] [info] [1673399208203] Total Deleted Links = 0
[2023/01/11 11:34:31] [info] [1673399208203] Total Moved Files = 0
[2023/01/11 11:34:31] [info] [1673399208203] Total Dedupe Saving for this job = 0
B
[2023/01/11 11:34:31] [info] [1673399208203] Total Backup Data Size for this job
= 17.45 MB
[2023/01/11 11:34:31] [info] [1673399208203] Total Dedupe Saving for destination
= 0 B
[2023/01/11 11:34:31] [info] [1673399208203] Total Backup Data Size for destination
= 17.45 MB
[2023/01/11 11:34:32] [info] [-] Saving server information to destination.
[2023/01/11 11:34:32] [info] [1673399208203] Saving encrypted backup file index to
1673399150069/blocks/2023-01-11-11-34-08 at destination AhsayCBS...
[2023/01/11 11:34:32] [info] [-] Start running post-commands
[2023/01/11 11:34:32] [info] [-] Finished running post-commands
[2023/01/11 11:34:35] [info] [1673399208203] Deleting temporary file
/tmp/1673399150069/OBS@1673399208203
[2023/01/11 11:34:36] [info] [1673399208203] Backup Completed Successfully

Restore.sh

This script file is used to restore backup files to its original or alternate location.


# vi Restore.sh

Configure the following parameters:

  • BACKUP_SET - name of the backup set which you want to restore. There are two (2) ways to specify the backup set; by using the backup set name or by backup set ID. If the backup set name is not in English, use the backup set ID. You can leave this blank if you only have one (1) backup set.

    e.g. BACKUP_SET=”1673399150069” or BACKUP_SET=”BackupSet-1”

  • DESTINATION - name of the destination where the backup set was stored. There are two (2) ways to specify the destination; by using the destination name or destination ID. If the destination name is not in English, use the destination ID. You can leave this blank if you only have one (1) backup destination.

    e.g. BACKUP_DESTS=1119083740107” or BACKUP_DESTS=”AhsayCBS”

  • RESTORE_TO - directory where you want to restore the backup file. You do not need to change this if the backup file will be restored to its original location.

    e.g. RESTORE_TO=”” or RESTORE_TO=”/restored”

  • RESTORE_FROM - directory of the files that you would like to restore.

    e.g. RESTORE_FROM="/Data"

  • POINT_IN_TIME - the specific successful backup that you want to restore. You can use Current if you want to use the latest backup snapshot. You can see the point in time snapshot by using the ListBackupJob.sh script.

    e.g. POINT_IN_TIME=”Current” or POINT_IN_TIME=”2023-01-11-10-37-57"

  • RESTORE_PERMISSION - option to enable or disable file permission.

    e.g. RESTORE_PERMISSION=”N” or RESTORE_PERMISSION=”Y”

  • SKIP_INVALID_KEY - option to skip restoring the backup file with an invalid key.

    e.g. SKIP_INVALID_KEY=”Y” or SKIP_INVALID_KEY=”N”

  • SYNC_OPTION - option to delete extra files.

    e.g. SYNG_OPTION="Y" if you want to enable sync options

    SYNC_OPTION="N" if you want to disable sync options

    SYNC_OPTION="" if you want the user to be prompted for selection

  • REPLACE_EXISTING_FILE - option to replace files with the same filename. There are three (3) options for this: --all, --none or blank.

    e.g. REPLACE_EXISTING_FILE="--all" if you want to replace existing files with the same filename

    REPLACE_EXISTING_FILE="--none" if you want to keep all existing files with the same filename

    REPLACE_EXISTING_FILE="" if you want the user to be prompted for selection

  • SETTING_HOME - – the directory to your setting home. If not set, the default directory is “${HOME}/.obm”.

    e.g. SETTING_HOME="/root/.obm"

  • FILTER - filter the files that you want to be restored. Use this format to set the filter: - Pattern=xxx-Type=yyy-Target=zzz.

    xxx is the filter patern.

    yyy is the filter type, there are eight (8) options available: exact, exactMatchCase, contains, containsMatchCase, startWith, startWithMatchCase, endWith and endWithMatchCase.

    zzz is the filter target, there are three (3) options available: toFile, toFileDir, and toDir.

    e.g. FILTER="--Pattern=.txt-Type=exact-Target=toFile"

  • TEMP_DIR - director where restore files will be stored temporarily. If set to “”, the temporary directory in the backup set will be used.

    e.g. TEMP_DIR="/tmp"

  • VERIFY_CHKSUM - option to verify the In-File Delta file checksum during restore.

    e.g. VERIFY_CHKSUM="Y" or VERIFY_CHKSUM="N"


#!/bin/sh
################################# Restore.sh #################################
# You can use this shell script to restore backup files using command-line. #
# Just customize the "User Define Section" below with values for your restore #
# action. #
################################################################################
######################### Start: User Defined Section ########################
# ------------------------------- BACKUP_SET ---------------------------------
# | The name or ID of the backup set that you want to restore. |
# | If backup set name is not in English, please use ID instead. |
# | e.g. BACKUP_SET="1119083740107" |
# | or BACKUP_SET="FileBackupSet-1" |
# | |
# | You can leave this parameter blank if you have only 1 backup set. |
# ------------------------------------------------------------------------------
BACKUP_SET=""
# ------------------------------ DESTINATION ---------------------------------
# | The name or ID of the backup destination that you want to restore from. |
# | If backup destination name is not in English, please use ID instead. |
# | e.g. DESTINATION="1740107119083" |
# | or DESTINATION="Destination-1" |
# | |
# | You can leave this parameter blank if you have only 1 destination. |
# ------------------------------------------------------------------------------
DESTINATION=""
# ------------------------------- RESTORE_TO ---------------------------------
# | Directory to where you want files to be restored |
# | set to "" to restore files to original location |
# | e.g. RESTORE_TO="/tmp" |
# ------------------------------------------------------------------------------
RESTORE_TO=""
# ------------------------------ RESTORE_FROM --------------------------------
# | File/Directory on the backup server that you would like to restore |
# | e.g. RESTORE_FROM="/Data" |
# ------------------------------------------------------------------------------
RESTORE_FROM=""
# ----------------------------- POINT_IN_TIME --------------------------------
# | The point-in-time snapshot (successful backup) that you want to restore |
# | from the backup server. Use "Current" for the latest backup snapshot |
# | e.g. POINT_IN_TIME="2006-10-04-12-57-13" |
# | or POINT_IN_TIME="Current" |
# | |
# | You can retrieve the point in time by using the ListBackupJob.sh |
# ------------------------------------------------------------------------------
POINT_IN_TIME="Current"
# -------------------------- RESTORE_PERMISSION ------------------------------
# | set to "Y" if you want to restore file permissions |
# | set to "N" if you do NOT want to restore file permissions |
# ------------------------------------------------------------------------------
RESTORE_PERMISSION="N"
# ---------------------------- SKIP_INVALID_KEY ------------------------------
# | set to "Y" if you want to skip restore file with invalid key |
# | set to "N" if you want to prompt user to input a correct key |
# ------------------------------------------------------------------------------
SKIP_INVALID_KEY="N"
# ------------------------------ SYNC_OPTION ---------------------------------
# | Delete extra files |
# | set to "Y" if you want to enable sync option |
# | set to "N" if you do NOT want to enable sync option |
# | set to "" to prompt for selection |
# ------------------------------------------------------------------------------
SYNC_OPTION="N"
# ------------------------- REPLACE_EXISTING_FILE ----------------------------
# | set to "--all" to replace all existing file(s) of the same filename |
# | set to "--none" to skip all existing file(s) with the same filename |
# | set to "" to prompt for selection |
# ------------------------------------------------------------------------------
REPLACE_EXISTING_FILE="--all"
# ------------------------------ SETTING_HOME --------------------------------
# | Directory to your setting home. |
# | Default to ${HOME}/.obm when not set. |
# | e.g. SETTING_HOME="${HOME}/.obm" |
# ------------------------------------------------------------------------------
SETTING_HOME=""
# --------------------------------- FILTER -----------------------------------
# | Filter out what files you want to restore |
# | -Pattern=xxx-Type=yyy-Target=zzz |
# | where xxx is the filter pattern, |
# | yyy is the filter type, whice can be one of the following: |
# | [exact | exactMatchCase | contains | containsMatchCase| |
# | startWith | startWithMatchCase | endWith | endWithMatchCase] |
# | zzz is the filter target, which can be one of the following: |
# | [toFile | toFileDir | toDir] |
# | |
# | e.g. FILTER="-Pattern=.txt-Type=exact-Target=toFile" |
# ------------------------------------------------------------------------------
FILTER=""
# -------------------------------- TEMP_DIR ----------------------------------
# | Directory to where you want to store restore files temporarily |
# | set to "" to use the temporary directory in the backup set |
# | e.g. TEMP_DIR="/tmp" |
# ------------------------------------------------------------------------------
TEMP_DIR=""
# ----------------------------- VERIFY_CHKSUM --------------------------------
# | set to "Y" if you want to verify in-file delta file checksum during restore|
# | set to "N" if you do NOT want to verify in-file delta file checksum during |
# | restore |
# ------------------------------------------------------------------------------
VERIFY_CHKSUM="N"
########################## END: User Defined Section #########################
################################################################################
# R E T R I E V E A P P _ H O M E P A T H #
################################################################################
EXE_DIR=`pwd`
SCRIPT_HOME=`dirname "$0"`
cd "$SCRIPT_HOME"
APP_BIN=`pwd`
APP_HOME=`dirname "$APP_BIN"`
SYSTEM_OS=`uname`
SYSTEM_ARCH=`uname -m`
DEP_LIB_PATH=
OS_NAME=
case "${SYSTEM_OS}" in
 Linux* )
 OS_NAME="Lin"
 ;;
 *BSD* )
 OS_NAME="Fbd"
 ;;
 SunOS )
 OS_NAME="Sos"
 SYSTEM_ARCH=`isainfo -b`
 ;;
 * )
 echo "OS \"${SYSTEM_OS}\" is not supported. Exit now."
 exit 1
 ;;
esac
OS_ARCH=
if [ -z "${DEP_LIB_PATH}" ]; then
 case "${SYSTEM_ARCH}" in
 i[3-6]86 | 32)
 OS_ARCH="X86"
 ;;
 x86_64 | amd64 | 64)
 OS_ARCH="X64"
 ;;
 armv6*)
 OS_ARCH="Av6"
 ;;
 armv7*)
 OS_ARCH="Av7"
 ;;
 armv5*)
 OS_ARCH="Arm"
 ;;
 aarch64*)
 OS_ARCH="A64"
 ;;
 * )
 echo "Arch \"${SYSTEM_ARCH}\" is not supported. Exit now."
 exit 1
 ;;
 esac
 DEP_LIB_PATH=${OS_NAME}${OS_ARCH}
fi
################################################################################
# R E T R I E V E J A V A _ H O M E P A T H #
################################################################################
if [ "Darwin" = "${SYSTEM_OS}" ]; then
 JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Home"
fi
if [ ! -x "$APP_HOME/jvm" ];
then
 echo "'$APP_HOME/jvm' does not exist!"
 if [ ! -n "$JAVA_HOME" ]; then
 echo "Please set JAVA_HOME!"
 exit 0
 else
 ln -sf "$JAVA_HOME" "$APP_HOME/jvm"
 echo "Created JAVA_HOME symbolic link at '$APP_HOME/jvm'"
 fi
fi
if [ ! -x "$APP_HOME/jvm" ];
then
 echo "Please create symbolic link for '$JAVA_HOME' to '$APP_HOME/jvm'"
 exit 0
fi
JAVA_HOME="$APP_HOME/jvm"
JAVA_EXE="$JAVA_HOME/bin/java"
# Verify the JAVA_EXE whether it can be executed or not.
if [ ! -x "${JAVA_EXE}" ]
then
 echo "The Java Executable file \"${JAVA_EXE}\" cannot be executed. Exit
\""`basename "$0"`"\" now."
 exit 1
fi
# Verify the JAVA_EXE whether it is a valid JAVA Executable or not.
STRING_JAVA_VERSION="java version,openjdk version"
OUTPUT_JAVA_VERSION=`"${JAVA_EXE}" -version 2>&1`
OUTPUT_JVM_SUPPORT=0
BACKUP_IFS=$IFS
IFS=","
for word in $STRING_JAVA_VERSION; do
 if [ `echo "${OUTPUT_JAVA_VERSION}" | grep "${word}" | grep -cv "grep ${word}"`
-le 0 ]
 then
 #echo "The Java Executable \"${JAVA_EXE}\" is not a valid Java Executable.
Exit \""`basename "$0"`"\" now."
 continue;
 else
 OUTPUT_JVM_SUPPORT=1
 break;
 fi
done
IFS=$BACKUP_IFS
if [ $OUTPUT_JVM_SUPPORT -eq 0 ]
then
 echo "The Java Executable \"${JAVA_EXE}\" is not a valid Java Executable. Exit
\""`basename "$0"`"\" now."
 exit 1
fi
################################################################################
# J A V A E X E C U T I O N #
################################################################################
# Set LD_LIBRARY_PATH for Lotus Notes on Linux
if [ "Linux" = "${SYSTEM_OS}" ];
then
 NOTES_PROGRAM=`cat "$APP_BIN/notesenv"`
 LD_LIBRARY_PATH="$APP_BIN:$NOTES_PROGRAM:$LD_LIBRARY_PATH"
 export NOTES_PROGRAM
else
 LD_LIBRARY_PATH="$APP_BIN:$LD_LIBRARY_PATH"
fi
# The Restore Action must be execute at path $APP_HOME/bin
cd "${APP_BIN}"
LD_LIBRARY_PATH="${APP_BIN}/${DEP_LIB_PATH}":".":"${LD_LIBRARY_PATH}"
SHLIB_PATH="$LD_LIBRARY_PATH"
export LD_LIBRARY_PATH SHLIB_PATH
# Reference path will be used to avoid empty space in the parent directory
LIB_HOME=.
JAVA_OPTS="-Xrs -Xms128m -Xmx2048m -XX:MaxDirectMemorySize=512m -client -
Dsun.nio.PageAlignDirectMemory=true"
JNI_PATH="-Djava.library.path=$LIB_HOME:$LIB_HOME/${DEP_LIB_PATH}"
CLASSPATH="$LIB_HOME:$LIB_HOME/cb.jar"
MAIN_CLASS=Restore
echo "Using APP_HOME: : ${APP_HOME}"
echo "Using BACKUP_SET : ${BACKUP_SET}"
echo "Using RESTORE_FROM : ${RESTORE_FROM}"
echo "Using RESTORE_TO : ${RESTORE_TO}"
echo "Using POINT_IN_TIME : ${POINT_IN_TIME}"
echo "Using RESTORE_PERMISSION : ${RESTORE_PERMISSION}"
echo "Using TEMP_DIR : ${TEMP_DIR}"
# Do not include double-quote for java options, jni path, classpath and
# main class.
# Only apply double-quote for path to java executable and execution arguments
"${JAVA_EXE}" $JAVA_OPTS $JNI_PATH -cp $CLASSPATH $MAIN_CLASS --to="${RESTORE_TO}"
--from="${RESTORE_FROM}" --backup-set="${BACKUP_SET}" --backupdest="${DESTINATION}" "${REPLACE_EXISTING_FILE}" --date="${POINT_IN_TIME}" --setpermission="${RESTORE_PERMISSION}" --skip-invalid-key="${SKIP_INVALID_KEY}" --
sync="${SYNC_OPTION}" --filter="${FILTER}" --temp-dir="${TEMP_DIR}" --verifydelta-file-chksum="${VERIFY_CHKSUM}" --app-home="${APP_HOME}" --settinghome="${SETTING_HOME}"
################################################################################
# R E S E T A N D E X I T #
################################################################################
cd "${EXE_DIR}"
exit 0

Once you have configured the parameters, save the changes. Use the sh command to run the script. The restore will be run manually.


# sh Restore.sh
Using APP_HOME: : /usr/local/obm
Using BACKUP_SET :
Using RESTORE_FROM : /root/testfiles
Using RESTORE_TO : /root/restored
Using POINT_IN_TIME : Current
Using RESTORE_PERMISSION : N
Using TEMP_DIR :
Filter Pattern not set, filter would not apply to restore
Temporary directory not set, use the temporary directory in the backup set
[2023-01-11 12:15:13] Start [ AhsayOBM v9.5.2.0 ]
[2023-01-11 12:15:13] OS: Linux 3.10.0-1160.11.1.el7.x86_64 (centos7); CPU
Model: VMware-Intel(R) Xeon(R) Gold 5218R CPU @ 2.10GHz,Intel(R) Xeon(R) Gold
5218R CPU @ 2.10GHz; Number of Processors: 4; Heap Size: 124.5 MB (Current) /
1.8 GB (Maximum); Physical Memory: 1.7 GB (Free) / 3.7 GB (Total)
[2023-01-11 12:15:13] start,Start [ AhsayOBM v9.5.2.0 ],0,0,0,,0,0
[2023-01-11 12:15:13] Selected job: 2023-01-11-12-15-01
[2023-01-11 12:15:13] Selected source: [/root/testfiles]
[2023-01-11 12:15:13] Info: [followLink=false marshalTargetPath=false
deleteForSync=false skipFaultKey=false verifyDeltaFileChecksum=false
ignoreSegmentInfoCorruptedData=true restorePermission=false [RestoreLocation]
type=RAW path=[/root/restored]]
[2023-01-11 12:15:15] Creating new directory... "/root/restored/root"
[2023-01-11 12:15:15] Creating new directory... "/root/restored/root/
testfiles"
[2023-01-11 12:15:15] [1710422448][SharedBlockRestore] /root/testfiles/
famouspaintings.epub (6733256)
[2023-01-11 12:15:15] [1710422448][SharedBlockRestore] /root/testfiles/file100kB.doc (100352)
[2023-01-11 12:15:15] [1710422448][SharedBlockRestore] /root/testfiles/file500kB.docx (551820)
[2023-01-11 12:15:15] [1710422448][SharedBlockRestore] /root/testfiles/file_
10.xls (8704)
[2023-01-11 12:15:15] [1710422448][SharedBlockRestore] /root/testfiles/file_
11.xlsx (5425)
[2023-01-11 12:15:15] [1710422448][SharedBlockRestore] /root/testfiles/file_
1MG.wav (1073218)
[2023-01-11 12:15:15] [1710422448][SharedBlockRestore] /root/testfiles/file_
250kB.ppt (248320)
[2023-01-11 12:15:15] [1710422448][SharedBlockRestore] /root/testfiles/file_
480_1_5MG.mp4 (1570024)
[2023-01-11 12:15:15] [1710422448][SharedBlockRestore] /root/testfiles/file_
700KB.mp3 (764176)
[2023-01-11 12:15:15] [1710422448][SharedBlockRestore] /root/testfiles/
sample1.pdf (581407)
[2023-01-11 12:15:15] [1710422448][SharedBlockRestore] /root/testfiles/
sample1.txt (607)
[2023-01-11 12:15:15] [1710422448][SharedBlockRestore] /root/testfiles/
sample2.pdf (65715)
[2023-01-11 12:15:15] [1710422448][SharedBlockRestore] /root/testfiles/
sample2.txt (2859)
[2023-01-11 12:15:15] [1710422448][SharedBlockRestore] /root/testfiles/
sample3.pdf (1253607)
[2023-01-11 12:15:15] [1710422448][SharedBlockRestore] /root/testfiles/
sample3.txt (3541)
[2023-01-11 12:15:15] [1710422448][SharedBlockRestore] /root/testfiles/
sample_1280×853.bmp (3275658)
[2023-01-11 12:15:15] [1710422448][SharedBlockRestore] /root/testfiles/
sample_1280×853.jpg (334137)
[2023-01-11 12:15:15] [1710422448][SharedBlockRestore] /root/testfiles/
sample_640×426.bmp (818058)
[2023-01-11 12:15:15] [1710422448][SharedBlockRestore] /root/testfiles/
sample_640×426.jpg (88731)
[2023-01-11 12:15:15] [1710422448][SharedBlockRestore] /root/testfiles/
sample_640×426.tiff (818184)
[2023-01-11 12:15:15] Downloading... "/root/restored/root/testfiles/file100kB.doc" (Total 98 K bytes)
[2023-01-11 12:15:15] file,/root/restored/root/testfiles/file-100kB.doc,
73584,100352,1673395458000,,1673410515723,1673410515727
[2023-01-11 12:15:15] Downloading... "/root/restored/root/testfiles/file_
11.xlsx" (Total 5.3 K bytes)
[2023-01-11 12:15:15] file,/root/restored/root/testfiles/file_11.xlsx,4752,
5425,1673395527000,,1673410515729,1673410515729
[2023-01-11 12:15:15] Downloading... "/root/restored/root/testfiles/file500kB.docx" (Total 538.89 K bytes)
[2023-01-11 12:15:15] file,/root/restored/root/testfiles/file-500kB.docx,
551232,551820,1673395562000,,1673410515785,1673410515786
[2023-01-11 12:15:15] Downloading... "/root/restored/root/testfiles/file_
250kB.ppt" (Total 242.5 K bytes)
[2023-01-11 12:15:15] file,/root/restored/root/testfiles/file_250kB.ppt,
151584,248320,1673395614000,,1673410515790,1673410515791
[2023-01-11 12:15:15] Downloading... "/root/restored/root/testfiles/file_
1MG.wav" (Total 1.02 M bytes)
[2023-01-11 12:15:15] file,/root/restored/root/testfiles/file_1MG.wav,
1013184,1073218,1673395429000,,1673410515812,1673410515814
[2023-01-11 12:15:15] Downloading... "/root/restored/root/testfiles/
sample2.txt" (Total 2.79 K bytes)
[2023-01-11 12:15:15] file,/root/restored/root/testfiles/sample2.txt,1440,
2859,1673396115000,,1673410515815,1673410515815
[2023-01-11 12:15:15] Downloading... "/root/restored/root/testfiles/
famouspaintings.epub" (Total 6.42 M bytes)
[2023-01-11 12:15:15] Downloading... "/root/restored/root/testfiles/file_480_
1_5MG.mp4" (Total 1.5 M bytes)
[2023-01-11 12:15:15] file,/root/restored/root/testfiles/famouspaintings.
epub,6731616,6733256,1673396056000,,1673410515832,1673410515838
[2023-01-11 12:15:15] file,/root/restored/root/testfiles/file_480_1_5MG.mp4,
1570032,1570024,1673395323000,,1673410515838,1673410515840
[2023-01-11 12:15:15] Downloading... "/root/restored/root/testfiles/
sample3.txt" (Total 3.46 K bytes)
[2023-01-11 12:15:15] file,/root/restored/root/testfiles/sample3.txt,1824,
3541,1673396118000,,1673410515841,1673410515841
[2023-01-11 12:15:15] Downloading... "/root/restored/root/testfiles/
sample1.pdf" (Total 567.78 K bytes)
[2023-01-11 12:15:15] file,/root/restored/root/testfiles/sample1.pdf,
517776,581407,1673396163000,,1673410515849,1673410515850
[2023-01-11 12:15:15] Downloading... "/root/restored/root/testfiles/file_
700KB.mp3" (Total 746.27 K bytes)
[2023-01-11 12:15:15] file,/root/restored/root/testfiles/file_700KB.mp3,
764192,764176,1673395367000,,1673410515852,1673410515853
[2023-01-11 12:15:15] Downloading... "/root/restored/root/testfiles/
sample1.txt" (Total 607 bytes)
[2023-01-11 12:15:15] file,/root/restored/root/testfiles/sample1.txt,400,
607,1673396110000,,1673410515854,1673410515854
[2023-01-11 12:15:15] Downloading... "/root/restored/root/testfiles/sample_
1280×853.jpg" (Total 326.31 K bytes)
[2023-01-11 12:15:15] file,/root/restored/root/testfiles/sample_1280×853.jpg,
334144,334137,1673395923000,,1673410515855,1673410515856
[2023-01-11 12:15:15] Downloading... "/root/restored/root/testfiles/
sample2.pdf" (Total 64.17 K bytes)
[2023-01-11 12:15:15] Downloading... "/root/restored/root/testfiles/
sample_640×426.jpg" (Total 86.65 K bytes)
[2023-01-11 12:15:15] file,/root/restored/root/testfiles/sample2.pdf,
52896,65715,1673396167000,,1673410515857,1673410515858
[2023-01-11 12:15:15] file,/root/restored/root/testfiles/sample_640×426.jpg,
88736,88731,1673395913000,,1673410515858,1673410515859
[2023-01-11 12:15:15] Downloading... "/root/restored/root/testfiles/file_
10.xls" (Total 8.5 K bytes)
[2023-01-11 12:15:15] file,/root/restored/root/testfiles/file_10.xls,1984,
8704,1673395500000,,1673410515860,1673410515860
[2023-01-11 12:15:15] Downloading... "/root/restored/root/testfiles/sample_
640×426.bmp" (Total 798.88 K bytes)
[2023-01-11 12:15:15] file,/root/restored/root/testfiles/sample_640×426.bmp,
621856,818058,1673395849000,,1673410515874,1673410515875
[2023-01-11 12:15:15] Downloading... "/root/restored/root/testfiles/sample_
640×426.tiff" (Total 799.01 K bytes)
[2023-01-11 12:15:15] file,/root/restored/root/testfiles/sample_640×426.tiff,
622128,818184,1673395970000,,1673410515876,1673410515877
[2023-01-11 12:15:15] Downloading... "/root/restored/root/testfiles/
sample3.pdf" (Total 1.2 M bytes)
[2023-01-11 12:15:15] file,/root/restored/root/testfiles/sample3.pdf,
1171152,1253607,1673396174000,,1673410515897,1673410515899
[2023-01-11 12:15:15] Downloading... "/root/restored/root/testfiles/sample_
1280×853.bmp" (Total 3.12 M bytes)
[2023-01-11 12:15:15] file,/root/restored/root/testfiles/sample_1280×853.bmp,
2465200,3275658,1673395885000,,1673410515959,1673410515962
[2023-01-11 12:15:17] Restore Completed Successfully
[2023-01-11 12:15:17] end,RESTORE_STOP_SUCCESS,0,0,0,,0,0

Decrypt.sh

This script file is used to decrypt backup files.


# vi Decrypt.sh

Configure the following parameters:

  • SOURCE_DIR - path of the folder that contains the backup files that you want to decrypt.

    e.g. SOURCE_DIR=”/usr/local/cbs/user/user/1563436721634/blocks”

  • ENCRYPT_KEY - the encryption key of the backup set. Leave this blank if the backup set is not encrypted.

    e.g. ENCRYPT_KEY=”RU5DUIIQVF9LRVk=”

  • DECRYPT_TO - directory where decrypted backup file will be stored.

    e.g. DECRYPT_TO=”/root/decrypted”

  • DECRYPT_FROM - the directory that you would like to decrypt.

    e.g. DECRYPT_FROM=”/root/testfiles”

  • POINT_IN_TIME - the specific successful backup that you want to restore. You can use Current if you want to use the latest backup snapshot. You can see the point in time snapshot by using the ListBackupJob.sh script.

    e.g. POINT_IN_TIME=”Current” or POINT_IN_TIME=”2023-01-11-10-37-57”

  • RESTORE_PERMISSION - option to enable the restore permission

    e.g. RESTORE_PERMISSION=”N” or RESTORE_PERMISSION=”Y”

  • SKIP_INVALID_KEY - option to skip restoring the backup file with an invalid key.

    e.g. SKIP_INVALID_KEY=”Y” or SKIP_INVALID_KEY=”N”

  • SYNC_OPTION - option to delete extra files

    e.g. SYNC_OPTION=”Y” if you want to enable sync options

    SYNC_OPTION=”N” if you want to disable sync options

    SYNC_OPTION=”” if you want user to be prompted for selection

  • REPLACE_EXISTING_FILE - option to replace files with the same filename. There are three (3) options for this: --all, --none or blank.

    e.g. REPLACE_EXISTING_FILE=”--all” if want to replace existing files with the same filename

    REPLACE_EXISTING_FILE=”--none” if you want to keep all existing files with the same filename

    REPLACE_EXISTING_FILE=”” if you want user to be prompted for selection

  • SETTING_HOME - the directory to your setting home. If not set, the default directory is “${HOME}/.obm”.

    e.g. SETTING_HOME="/root/.obm"

  • FILTER - filter the files that you want to be restored. Use this format to set the filter: - Pattern=xxx-Type=yyy-Target=zzz.

    xxx is the filter pattern

    yyy is the filter type, there are eight (8) options available: exact, exactMatchCase, contains, containsMatchCase, startWith, startWithMatchCase, endWith and endWithMatchCase.

    zzz is the filter target, there are three (3) options available: toFile, toFileDir and toDir.

    e.g. FILTER="-Pattern=.txt-Type=exact-Target=toFile"

  • TEMP_DIR - director where restore files will be stored temporarily. If set to “”, the temporary directory in the backup set will be used.

    e.g. TEMP_DIR="/tmp"

  • VERIFY_CHKSUM - option to verify the In-File Delta file checksum during restore.

    e.g. VERIFY_CHKSUM=”Y” or VERIFY_CHKSUM=”N”


#!/bin/sh
################################# Decrypt.sh #################################
# You can use this shell script to decrypt backup files using command-line. #
# Just customize the "User Define Section" below with values for your decrypt #
# action. #
################################################################################
######################### Start: User Defined Section ########################
# ------------------------------- SOURCE_DIR ---------------------------------
# | The path to the [<backup set ID>/blocks] folder which contains |
# | the backup files that you want to decrypt. |
# | This folder should located under backup destination physically. |
# | e.g. SET SOURCE_DIR="/Users/john/backupdata/1498444438340/blocks" |
# | where directory "/Users/john/backupdata" is path of local destination |
# ------------------------------------------------------------------------------
SOURCE_DIR=""
# ------------------------------- ENCRYPT_KEY --------------------------------
# | The encrypting key of the backup data. |
# | e.g. SET ENCRYPT_KEY="RU5DUllQVF9LRVk=" |
# | |
# | You can leave this parameter blank if backup data is not encrypted. |
# ------------------------------------------------------------------------------
ENCRYPT_KEY=""
# ------------------------------- DECRYPT_TO ---------------------------------
# | Directory to where you want files to be decrypted |
# | e.g. DECRYPT_TO="/tmp" |
# ------------------------------------------------------------------------------
DECRYPT_TO=""
# ------------------------------ DECRYPT_FROM --------------------------------
# | File/Directory on the backup data that you would like to decrypt |
# | e.g. DECRYPT_FROM="/Data" |
# ------------------------------------------------------------------------------
DECRYPT_FROM=""
# ----------------------------- POINT_IN_TIME --------------------------------
# | The point-in-time snapshot (successful backup) that you want to decrypt |
# | from the backup data. Use "Current" for the latest backup snapshot |
# | e.g. POINT_IN_TIME="2006-10-04-12-57-13" |
# | or POINT_IN_TIME="Current" |
# | |
# | You can retrieve the point in time by using the ListBackupJob.sh |
# ------------------------------------------------------------------------------
POINT_IN_TIME="Current"
# -------------------------- RESTORE_PERMISSION ------------------------------
# | set to "Y" if you want to restore file permissions |
# | set to "N" if you do NOT want to restore file permissions |
# ------------------------------------------------------------------------------
RESTORE_PERMISSION="N"
# ---------------------------- SKIP_INVALID_KEY ------------------------------
# | set to "Y" if you want to skip decrypt file with invalid key |
# | set to "N" if you want to prompt to input a correct key |
# ------------------------------------------------------------------------------
SKIP_INVALID_KEY="N"
# ------------------------------ SYNC_OPTION ---------------------------------
# | Delete extra files |
# | set to "Y" if you want to enable sync option |
# | set to "N" if you do NOT want to enable sync option |
# | set to "" to prompt for selection |
# ------------------------------------------------------------------------------
SYNC_OPTION="N"
# ------------------------- REPLACE_EXISTING_FILE ----------------------------
# | set to "--all" to replace all existing file(s) of the same filename |
# | set to "--none" to skip all existing file(s) with the same filename |
# | set to "" to prompt for selection |
# ------------------------------------------------------------------------------
REPLACE_EXISTING_FILE="--all"
# ------------------------------ SETTING_HOME --------------------------------
# | Directory to your setting home. Log files will be located inside. |
# | Default to ${HOME}/.obm when not set. |
# | e.g. SETTING_HOME="/Users/john/.obm" |
# ------------------------------------------------------------------------------
SETTING_HOME=""
# --------------------------------- FILTER -----------------------------------
# | Filter out what files you want to decrypt |
# | -Pattern=xxx-Type=yyy-Target=zzz |
# | where xxx is the filter pattern, |
# | yyy is the filter type, whice can be one of the following: |
# | [exact | exactMatchCase | contains | containsMatchCase| |
# | startWith | startWithMatchCase | endWith | endWithMatchCase] |
# | zzz is the filter target, which can be one of the following: |
# | [toFile | toFileDir | toDir] |
# | |
# | e.g. FILTER="-Pattern=.txt-Type=exact-Target=toFile" |
# ------------------------------------------------------------------------------
FILTER=""
# -------------------------------- TEMP_DIR ----------------------------------
# | Directory to where you want to store decrypt files temporarily |
# | e.g. TEMP_DIR="/tmp" |
# ------------------------------------------------------------------------------
TEMP_DIR=""
# ----------------------------- VERIFY_CHKSUM --------------------------------
# | set to "Y" if you want to verify in-file delta file checksum during decrypt|
# | set to "N" if you do NOT want to verify in-file delta file checksum during |
# | decrypt |
# ------------------------------------------------------------------------------
VERIFY_CHKSUM="N"
########################## END: User Defined Section #########################
################################################################################
# R E T R I E V E A P P _ H O M E P A T H #
################################################################################
EXE_DIR=`pwd`
SCRIPT_HOME=`dirname "$0"`
cd "$SCRIPT_HOME"
APP_BIN=`pwd`
APP_HOME=`dirname "$APP_BIN"`
SYSTEM_OS=`uname`
SYSTEM_ARCH=`uname -m`
DEP_LIB_PATH=
OS_NAME=
case "${SYSTEM_OS}" in
 Linux* )
 OS_NAME="Lin"
 ;;
 *BSD* )
 OS_NAME="Fbd"
 ;;
 SunOS )
 OS_NAME="Sos"
 SYSTEM_ARCH=`isainfo -b`
 ;;
 * )
 echo "OS \"${SYSTEM_OS}\" is not supported. Exit now."
 exit 1
 ;;
esac
OS_ARCH=
if [ -z "${DEP_LIB_PATH}" ]; then
 case "${SYSTEM_ARCH}" in
 i[3-6]86 | 32)
 OS_ARCH="X86"
 ;;
 x86_64 | amd64 | 64)
 OS_ARCH="X64"
 ;;
 armv6*)
 OS_ARCH="Av6"
 ;;
 armv7*)
 OS_ARCH="Av7"
 ;;
 armv5*)
 OS_ARCH="Arm"
 ;;
 aarch64*)
 OS_ARCH="A64"
 ;;
 * )
 echo "Arch \"${SYSTEM_ARCH}\" is not supported. Exit now."
 exit 1
 ;;
 esac
 DEP_LIB_PATH=${OS_NAME}${OS_ARCH}
fi
################################################################################
# R E T R I E V E J A V A _ H O M E P A T H #
################################################################################
if [ "Darwin" = "${SYSTEM_OS}" ]; then
 JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Home"
fi
if [ ! -x "$APP_HOME/jvm" ];
then
 echo "'$APP_HOME/jvm' does not exist!"
 if [ ! -n "$JAVA_HOME" ]; then
 echo "Please set JAVA_HOME!"
 exit 0
 else
 ln -sf "$JAVA_HOME" "$APP_HOME/jvm"
 echo "Created JAVA_HOME symbolic link at '$APP_HOME/jvm'"
 fi
fi
if [ ! -x "$APP_HOME/jvm" ];
then
 echo "Please create symbolic link for '$JAVA_HOME' to '$APP_HOME/jvm'"
 exit 0
fi
JAVA_HOME="$APP_HOME/jvm"
JAVA_EXE="$JAVA_HOME/bin/java"
# Verify the JAVA_EXE whether it can be executed or not.
if [ ! -x "${JAVA_EXE}" ]
then
 echo "The Java Executable file \"${JAVA_EXE}\" cannot be executed. Exit
\""`basename "$0"`"\" now."
 exit 1
fi
# Verify the JAVA_EXE whether it is a valid JAVA Executable or not.
STRING_JAVA_VERSION="java version,openjdk version"
OUTPUT_JAVA_VERSION=`"${JAVA_EXE}" -version 2>&1`
OUTPUT_JVM_SUPPORT=0
BACKUP_IFS=$IFS
IFS=","
for word in $STRING_JAVA_VERSION; do
 if [ `echo "${OUTPUT_JAVA_VERSION}" | grep "${word}" | grep -cv "grep ${word}"`
-le 0 ]
 then
 #echo "The Java Executable \"${JAVA_EXE}\" is not a valid Java Executable.
Exit \""`basename "$0"`"\" now."
 continue;
 else
 OUTPUT_JVM_SUPPORT=1
 break;
 fi
done
IFS=$BACKUP_IFS
if [ $OUTPUT_JVM_SUPPORT -eq 0 ]
then
 echo "The Java Executable \"${JAVA_EXE}\" is not a valid Java Executable. Exit
\""`basename "$0"`"\" now."
 exit 1
fi
################################################################################
# J A V A E X E C U T I O N #
################################################################################
# Set LD_LIBRARY_PATH for Lotus Notes on Linux
if [ "Linux" = "${SYSTEM_OS}" ];
then
 NOTES_PROGRAM=`cat "$APP_BIN/notesenv"`
 LD_LIBRARY_PATH="$APP_BIN:$NOTES_PROGRAM:$LD_LIBRARY_PATH"
 export NOTES_PROGRAM
else
 LD_LIBRARY_PATH="$APP_BIN:$LD_LIBRARY_PATH"
fi
# The Decrypt Action must be execute at path $APP_HOME/bin
cd "${APP_BIN}"
LD_LIBRARY_PATH="${APP_BIN}/${DEP_LIB_PATH}":".":"${LD_LIBRARY_PATH}"
SHLIB_PATH="$LD_LIBRARY_PATH"
export LD_LIBRARY_PATH SHLIB_PATH
# Reference path will be used to avoid empty space in the parent directory
LIB_HOME=.
JAVA_OPTS="-Xrs -Xms128m -Xmx2048m -XX:MaxDirectMemorySize=512m -client -
Dsun.nio.PageAlignDirectMemory=true"
JNI_PATH="-Djava.library.path=$LIB_HOME:$LIB_HOME/${DEP_LIB_PATH}"
CLASSPATH="$LIB_HOME:$LIB_HOME/cb.jar"
MAIN_CLASS=Decrypt
echo "Using APP_HOME: : ${APP_HOME}"
echo "Using SETTING_HOME: : ${SETTING_HOME}"
echo "Using SOURCE_DIR : ${SOURCE_DIR}"
echo "Using DECRYPT_FROM : ${DECRYPT_FROM}"
echo "Using DECRYPT_TO : ${DECRYPT_TO}"
echo "Using POINT_IN_TIME : ${POINT_IN_TIME}"
echo "Using RESTORE_PERMISSION : ${RESTORE_PERMISSION}"
echo "Using TEMP_DIR : ${TEMP_DIR}"
# Do not include double-quote for java options, jni path, classpath and
# main class.
# Only apply double-quote for path to java executable and execution arguments
"${JAVA_EXE}" $JAVA_OPTS $JNI_PATH -cp $CLASSPATH $MAIN_CLASS --to="${DECRYPT_TO}"
--from="${DECRYPT_FROM}" --source-dir="${SOURCE_DIR}" --key="${ENCRYPT_KEY}"
"${REPLACE_EXISTING_FILE}" --date="${POINT_IN_TIME}" --setpermission="${RESTORE_PERMISSION}" --skip-invalid-key="${SKIP_INVALID_KEY}" --
sync="${SYNC_OPTION}" --filter="${FILTER}" --temp-dir="${TEMP_DIR}" --verifydelta-file-chksum="${VERIFY_CHKSUM}" --app-home="${APP_HOME}" --settinghome="${SETTING_HOME}"
################################################################################
# R E S E T A N D E X I T #
################################################################################
cd "${EXE_DIR}"
exit 0

Once you have configured the parameters, save the changes. Use the sh command to run the script. The decryption will be run manually.


# sh Decrypt.sh
Using APP_HOME: : /usr/local/obm
Using SETTING_HOME: :
Using SOURCE_DIR : /root/backup/1673399150069/blocks
Using DECRYPT_FROM : /root/testfiles
Using DECRYPT_TO : /root/decrypt
Using POINT_IN_TIME : Current
Using RESTORE_PERMISSION : N
Using TEMP_DIR : /tmp
Filter Pattern not set, filter would not apply to decrypt
[2023-01-11 13:59:24] Start [ AhsayOBM v9.5.2.0 ]
[2023-01-11 13:59:24] OS: Linux 3.10.0-1160.11.1.el7.x86_64 (centos7); CPU
Model: VMware-Intel(R) Xeon(R) Gold 5218R CPU @ 2.10GHz,Intel(R) Xeon(R) Gold
5218R CPU @ 2.10GHz; Number of Processors: 4; Heap Size: 38.6 MB (Current) /
1.8 GB (Maximum); Physical Memory: 1.7 GB (Free) / 3.7 GB (Total)
[2023-01-11 13:59:24] start,Start [ AhsayOBM v9.5.2.0 ],0,0,0,,0,0
[2023-01-11 13:59:24] Selected job: 2023-01-11-13-59-15
[2023-01-11 13:59:24] Selected source: [/root/testfiles]
[2023-01-11 13:59:24] Info: [followLink=false marshalTargetPath=false
deleteForSync=false skipFaultKey=false verifyDeltaFileChecksum=false
ignoreSegmentInfoCorruptedData=true restorePermission=false [RestoreLocation]
type=RAW path=[/root/decrypt]]
[2023-01-11 13:59:26] Creating new directory... "/root/decrypt/root"
[2023-01-11 13:59:26] Creating new directory... "/root/decrypt/root/testfiles"
[2023-01-11 13:59:26] [1127338375][SharedBlockRestore] /root/testfiles/
famouspaintings.epub (6733256)
[2023-01-11 13:59:26] [1127338375][SharedBlockRestore] /root/testfiles/file100kB.doc (100352)
[2023-01-11 13:59:26] [1127338375][SharedBlockRestore] /root/testfiles/file500kB.docx (551820)
[2023-01-11 13:59:26] [1127338375][SharedBlockRestore] /root/testfiles/file_
10.xls (8704)
[2023-01-11 13:59:26] [1127338375][SharedBlockRestore] /root/testfiles/file_
11.xlsx (5425)
[2023-01-11 13:59:26] [1127338375][SharedBlockRestore] /root/testfiles/file_
1MG.wav (1073218)
[2023-01-11 13:59:26] [1127338375][SharedBlockRestore] /root/testfiles/file_
250kB.ppt (248320)
[2023-01-11 13:59:26] [1127338375][SharedBlockRestore] /root/testfiles/file_
480_1_5MG.mp4 (1570024)
[2023-01-11 13:59:26] [1127338375][SharedBlockRestore] /root/testfiles/file_
700KB.mp3 (764176)
[2023-01-11 13:59:26] [1127338375][SharedBlockRestore] /root/testfiles/
sample1.pdf (581407)
[2023-01-11 13:59:26] [1127338375][SharedBlockRestore] /root/testfiles/
sample1.txt (607)
[2023-01-11 13:59:26] [1127338375][SharedBlockRestore] /root/testfiles/
sample2.pdf (65715)
[2023-01-11 13:59:26] [1127338375][SharedBlockRestore] /root/testfiles/
sample2.txt (2859)
[2023-01-11 13:59:26] [1127338375][SharedBlockRestore] /root/testfiles/
sample3.pdf (1253607)
[2023-01-11 13:59:26] [1127338375][SharedBlockRestore] /root/testfiles/
sample3.txt (3541)
[2023-01-11 13:59:26] [1127338375][SharedBlockRestore] /root/testfiles/
sample_1280×853.bmp (3275658)
[2023-01-11 13:59:26] [1127338375][SharedBlockRestore] /root/testfiles/
sample_1280×853.jpg (334137)
[2023-01-11 13:59:26] [1127338375][SharedBlockRestore] /root/testfiles/
sample_640×426.bmp (818058)
[2023-01-11 13:59:26] [1127338375][SharedBlockRestore] /root/testfiles/
sample_640×426.jpg (88731)
[2023-01-11 13:59:26] [1127338375][SharedBlockRestore] /root/testfiles/
sample_640×426.tiff (818184)
[2023-01-11 13:59:26] Downloading... "/root/decrypt/root/testfiles/file100kB.doc" (Total 98 K bytes)
[2023-01-11 13:59:26] file,/root/decrypt/root/testfiles/file-100kB.doc,
79952,100352,1673395458000,,1673416766559,1673416766563
[2023-01-11 13:59:26] Downloading... "/root/decrypt/root/testfiles/file500kB.docx" (Total 538.89 K bytes)
[2023-01-11 13:59:26] file,/root/decrypt/root/testfiles/file-500kB.docx,
551792,551820,1673395562000,,1673416766566,1673416766567
[2023-01-11 13:59:26] Downloading... "/root/decrypt/root/testfiles/file_
10.xls" (Total 8.5 K bytes)
[2023-01-11 13:59:26] file,/root/decrypt/root/testfiles/file_10.xls,2896,
8704,1673395500000,,1673416766570,1673416766570
[2023-01-11 13:59:26] Downloading... "/root/decrypt/root/testfiles/file_
700KB.mp3" (Total 746.27 K bytes)
[2023-01-11 13:59:26] file,/root/decrypt/root/testfiles/file_700KB.mp3,
764192,764176,1673395367000,,1673416766587,1673416766588
[2023-01-11 13:59:26] Downloading... "/root/decrypt/root/testfiles/
file_11.xlsx" (Total 5.3 K bytes)
[2023-01-11 13:59:26] file,/root/decrypt/root/testfiles/file_11.xlsx,4976,
5425,1673395527000,,1673416766589,1673416766590
[2023-01-11 13:59:26] Downloading... "/root/decrypt/root/testfiles/
sample1.pdf" (Total 567.78 K bytes)
[2023-01-11 13:59:26] file,/root/decrypt/root/testfiles/sample1.pdf,552320,
581407,1673396163000,,1673416766600,1673416766601
[2023-01-11 13:59:26] Downloading... "/root/decrypt/root/testfiles/file_
1MG.wav" (Total 1.02 M bytes)
[2023-01-11 13:59:26] file,/root/decrypt/root/testfiles/file_1MG.wav,1073888,
1073218,1673395429000,,1673416766617,1673416766619
[2023-01-11 13:59:26] Downloading... "/root/decrypt/root/testfiles/
sample1.txt" (Total 607 bytes)
[2023-01-11 13:59:26] file,/root/decrypt/root/testfiles/sample1.txt,624,607,
1673396110000,,1673416766619,1673416766620
[2023-01-11 13:59:26] Downloading... "/root/decrypt/root/testfiles/
file_250kB.ppt" (Total 242.5 K bytes)
[2023-01-11 13:59:26] file,/root/decrypt/root/testfiles/file_250kB.ppt,
168144,248320,1673395614000,,1673416766623,1673416766624
[2023-01-11 13:59:26] Downloading... "/root/decrypt/root/testfiles/file_
480_1_5MG.mp4" (Total 1.5 M bytes)
[2023-01-11 13:59:26] file,/root/decrypt/root/testfiles/file_480_1_5MG.mp4,
1570032,1570024,1673395323000,,1673416766647,1673416766648
[2023-01-11 13:59:26] Downloading... "/root/decrypt/root/testfiles/sample_
640×426.bmp" (Total 798.88 K bytes)
[2023-01-11 13:59:26] file,/root/decrypt/root/testfiles/sample_640×426.bmp,
811200,818058,1673395849000,,1673416766661,1673416766662
[2023-01-11 13:59:26] Downloading... "/root/decrypt/root/testfiles/
sample2.txt" (Total 2.79 K bytes)
[2023-01-11 13:59:26] file,/root/decrypt/root/testfiles/sample2.txt,2240,
2859,1673396115000,,1673416766663,1673416766663
[2023-01-11 13:59:26] Downloading... "/root/decrypt/root/testfiles/
famouspaintings.epub" (Total 6.42 M bytes)
[2023-01-11 13:59:26] file,/root/decrypt/root/testfiles/famouspaintings.epub,
6737264,6733256,1673396056000,,1673416766667,1673416766672
[2023-01-11 13:59:26] Downloading... "/root/decrypt/root/testfiles/
sample3.txt" (Total 3.46 K bytes)
[2023-01-11 13:59:26] file,/root/decrypt/root/testfiles/sample3.txt,2960,
3541,1673396118000,,1673416766673,1673416766674
[2023-01-11 13:59:26] Downloading... "/root/decrypt/root/testfiles/
sample3.pdf" (Total 1.2 M bytes)
[2023-01-11 13:59:26] file,/root/decrypt/root/testfiles/sample3.pdf,1228032,
1253607,1673396174000,,1673416766681,1673416766682
[2023-01-11 13:59:26] Downloading... "/root/decrypt/root/testfiles/sample_
1280×853.jpg" (Total 326.31 K bytes)
[2023-01-11 13:59:26] file,/root/decrypt/root/testfiles/sample_1280×853.jpg,
334144,334137,1673395923000,,1673416766688,1673416766688
[2023-01-11 13:59:26] Downloading... "/root/decrypt/root/testfiles/
sample2.pdf" (Total 64.17 K bytes)
[2023-01-11 13:59:26] file,/root/decrypt/root/testfiles/sample2.pdf,56320,
65715,1673396167000,,1673416766690,1673416766691
[2023-01-11 13:59:26] Downloading... "/root/decrypt/root/testfiles/sample_
640×426.jpg" (Total 86.65 K bytes)
[2023-01-11 13:59:26] file,/root/decrypt/root/testfiles/sample_640×426.jpg,
88736,88731,1673395913000,,1673416766693,1673416766693
[2023-01-11 13:59:26] Downloading... "/root/decrypt/root/testfiles/sample_
640×426.tiff" (Total 799.01 K bytes)
[2023-01-11 13:59:26] file,/root/decrypt/root/testfiles/sample_640×426.tiff,
803264,818184,1673395970000,,1673416766705,1673416766706
[2023-01-11 13:59:26] Downloading... "/root/decrypt/root/testfiles/sample_
1280×853.bmp" (Total 3.12 M bytes)
[2023-01-11 13:59:26] file,/root/decrypt/root/testfiles/sample_1280×853.bmp,
3263488,3275658,1673395885000,,1673416766720,1673416766723
[2023-01-11 13:59:28] Restore Completed Successfully
[2023-01-11 13:59:28] end,RESTORE_STOP_SUCCESS,0,0,0,,0,0

RunDataIntegrityCheck.sh

This script file is used to run data integrity check on your backup set.


# vi RunDataIntegrityCheck.sh

Configure the following parameters:

  • SETTING_HOME - the directory to your setting home. If not set, the default directory is “${HOME}/.obm”.

    e.g. SETTING_HOME=”/root/.obm”

  • BACKUP_SETbackup set name or by backup set ID. If the backup set name is not in English, use the backup set ID. You can leave this blank if you only have one (1) backup set. You can also run the data integrity check on all backup sets by using “ALL”.

    e.g. BACKUP_SET=”1673399150069” or BACKUP_SET=”BackupSet-1” or BACKUP_SET=”ALL”

  • BACKUP_DEST - name of the destination where the backup set was stored. There are two (2) ways to specify the destination; by using the destination name or destination ID. If the destination name is not in English, use the destination ID. You can leave this blank if you only have one (1) backup destination.

    e.g. BACKUP_DEST=1119083740107” or BACKUP_DEST=”AhsayCBS”

  • CRC_MODE - option to run cyclic redundancy check while doing the data integrity check. There are two (2) options available: ENABLE-CRC and DISABLE-CRC.

    e.g. CRC_MODE=”DISABLE-CRC” or CRC_MODE=”ENABLE-CRC”

  • REBUILD_MODE - option to rebuild corrupted index while doing the data integrity check. There are two (2) options available: ENABLE-REBUILD and DISABLE-REBUILD.

    e.g. REBUILD_MODE=”DISABLE-REBUILD” or CRC_MODE=”ENABLE-REBUILD”

  • CLEANUP_RECYCLE_BIN_MODE - option to delete files in the Recycle Bin. There are two (2) options available: ENABLE-CLEANUP-RECYCLE-BIN and DISABLE-CLEANUP-RECYCLE-BIN.

    e.g. CLEANUP_RECYCLE_BIN_MODE=”DISABLE-CLEANUP-RECYCLE-BIN” or CLEANUP_RECYCLE_BIN_MODE=”ENABLE-CLEANUP-RECYCLE-BIN”.

  • PASSCODE_2FA - the TOTP passcode if 2FA is enabled. Leave blank if 2FA is not enabled. e.g. PASSCODE_2FA=”238745” OR PASSCODE_2FA=””

#!/bin/sh
########################## RunDataIntegrityCheck.sh ##########################
# You can use this shell script to run any of your backup sets from the #
# command line. Just customize the "User Defined Section" below with your #
# values for your backup action. #
################################################################################
######################## START: User Defined Section #########################
# -------------------------- SETTING_HOME (Optional) ---------------------------
# | Directory to your setting home. |
# | Default to ${HOME}/.obm when not set. |
# | e.g. SETTING_HOME="${HOME}/.obm" |
# ------------------------------------------------------------------------------
SETTING_HOME=""
# --------------------------------- BACKUP_SET ---------------------------------
# | The name or ID of the backup set that you want to run. |
# | If backup set name is not in English, please use ID instead. |
# | e.g. BACKUP_SET="1119083740107" |
# | or BACKUP_SET="FileBackupSet-1" |
# | You can use "ALL" to run data integrity check for all backup sets. |
# | i.e. BACKUP_SET="ALL" |
# | |
# | You can leave this parameter blank if you have only 1 backup set. |
# ------------------------------------------------------------------------------
BACKUP_SET="ALL"
# -------------------------------- BACKUP_DEST ---------------------------------
# | The name or ID of the backup destination that you want to run. |
# | If backup destination name is not in English, please use ID instead. |
# | e.g. BACKUP_DEST="1740107119083" |
# | or BACKUP_DEST="Destination-1" |
# | You can use "ALL" to run data integrity check for all destinations. |
# | i.e. BACKUP_DEST="ALL" |
# | |
# | You can leave this parameter blank if you have only 1 destination. |
# | Remark: This option is ignored if BACKUP_SET="ALL" |
# ------------------------------------------------------------------------------
BACKUP_DEST="ALL"
# ---------------------------------- CRC_MODE ----------------------------------
# | You can run Cyclic Redundancy Check (CRC) during data integrity check |
# | Options available: ENABLE-CRC/DISABLE-CRC |
# | i.e. CRC_MODE="ENABLE-CRC" |
# | or CRC_MODE="DISABLE-CRC" |
# ------------------------------------------------------------------------------
CRC_MODE="DISABLE-CRC"
# ------------------------------- REBUILD_MODE -------------------------------
# | You can run rebuild index |
# | Options available: ENABLE-REBUILD/DISABLE-REBUILD |
# | i.e. REBUILD_MODE="ENABLE-REBUILD" |
# | or REBUILD_MODE="DISABLE-REBUILD" |
# ------------------------------------------------------------------------------
REBUILD_MODE="DISABLE-REBUILD"
# ------------------------- CLEANUP_RECYCLE_BIN_MODE -------------------------
# | You can enforce to clean up recycle bin during data integrity check. |
# | If this option is enabled, it will override retention period in recycle |
# | bin settings and delete all files inside, no matter when those files were |
# | moved to recycle bin |
# | Options available: |
# | ENABLE-CLEANUP-RECYCLE-BIN/DISABLE-CLEANUP-RECYCLE-BIN |
# | i.e. CLEANUP_RECYCLE_BIN_MODE="ENABLE-CLEANUP-RECYCLE-BIN" |
# | or CLEANUP_RECYCLE_BIN_MODE="DISABLE-CLEANUP-RECYCLE-BIN" |
# ------------------------------------------------------------------------------
CLEANUP_RECYCLE_BIN_MODE="DISABLE-CLEANUP-RECYCLE-BIN"
# | ----------------------------- PASSCODE_2FA -------------------------------
# | If 2FA is enabled for the user, TOTP passcode need to be verified before |
# | running integrity check. If 2FA is not enabled, please left this blank. |
# | e.g. PASSCODE_2FA="123456" |
# | or PASSCODE_2FA="" |
# ------------------------------------------------------------------------------
PASSCODE_2FA=""
########################## END: User Defined Section ###########################
################################################################################
# S C R I P T U S A G E #
################################################################################
# Input Arguments will overwrite the above settings
# defined in 'User Defined Section'.
if [ $# -ge 1 ]; then
 if [ -n "$1" ]; then
 BACKUP_SET="$1"
 fi
fi
################################################################################
# R E T R I E V E A P P _ H O M E P A T H #
################################################################################
EXE_DIR=`pwd`
SCRIPT_HOME=`dirname "$0"`
cd "$SCRIPT_HOME"
APP_BIN=`pwd`
APP_HOME=`dirname "$APP_BIN"`
SYSTEM_OS=`uname`
SYSTEM_ARCH=`uname -m`
DEP_LIB_PATH=
OS_NAME=
case "${SYSTEM_OS}" in
 Linux* )
 OS_NAME="Lin"
 ;;
 *BSD* )
 OS_NAME="Fbd"
 ;;
 SunOS )
 OS_NAME="Sos"
 SYSTEM_ARCH=`isainfo -b`
 ;;
 * )
 echo "OS \"${SYSTEM_OS}\" is not supported. Exit now."
 exit 1
 ;;
esac
OS_ARCH=
if [ -z "${DEP_LIB_PATH}" ]; then
 case "${SYSTEM_ARCH}" in
 i[3-6]86 | 32)
 OS_ARCH="X86"
 ;;
 x86_64 | amd64 | 64)
 OS_ARCH="X64"
 ;;
 armv6*)
 OS_ARCH="Av6"
 ;;
 armv7*)
 OS_ARCH="Av7"
 ;;
 armv5*)
 OS_ARCH="Arm"
 ;;
 aarch64*)
 OS_ARCH="A64"
 ;;
 * )
 echo "Arch \"${SYSTEM_ARCH}\" is not supported. Exit now."
 exit 1
 ;;
 esac
 DEP_LIB_PATH=${OS_NAME}${OS_ARCH}
fi
################################################################################
# R E T R I E V E J A V A _ H O M E P A T H #
################################################################################
if [ "Darwin" = "${SYSTEM_OS}" ]; then
 JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Home"
fi
if [ ! -x "$APP_HOME/jvm" ];
then
 echo "'$APP_HOME/jvm' does not exist!"
 if [ ! -n "$JAVA_HOME" ]; then
 echo "Please set JAVA_HOME!"
 exit 0
 else
 ln -sf "$JAVA_HOME" "$APP_HOME/jvm"
 if [ ! -x "$APP_HOME/jvm" ];
 then
 echo "Please create symbolic link for '$JAVA_HOME' to '$APP_HOME/jvm'"
 exit 0
 else
 echo "Created JAVA_HOME symbolic link at '$APP_HOME/jvm'"
 fi
 fi
fi
JAVA_HOME="$APP_HOME/jvm"
JAVA_EXE="$JAVA_HOME/bin/java"
# Verify the JAVA_EXE whether it can be executed or not.
if [ ! -x "${JAVA_EXE}" ]
then
 echo "The Java Executable file \"${JAVA_EXE}\" cannot be executed. Exit
\""`basename "$0"`"\" now."
 exit 1
fi
# Verify the JAVA_EXE whether it is a valid JAVA Executable or not.
STRING_JAVA_VERSION="java version,openjdk version"
OUTPUT_JAVA_VERSION=`"${JAVA_EXE}" -version 2>&1`
OUTPUT_JVM_SUPPORT=0
BACKUP_IFS=$IFS
IFS=","
for word in $STRING_JAVA_VERSION; do
 if [ `echo "${OUTPUT_JAVA_VERSION}" | grep "${word}" | grep -cv "grep ${word}"`
-le 0 ]
 then
 #echo "The Java Executable \"${JAVA_EXE}\" is not a valid Java Executable.
Exit \""`basename "$0"`"\" now."
 continue;
 else
 OUTPUT_JVM_SUPPORT=1
 break;
 fi
done
IFS=$BACKUP_IFS
if [ $OUTPUT_JVM_SUPPORT -eq 0 ]
then
 echo "The Java Executable \"${JAVA_EXE}\" is not a valid Java Executable. Exit
\""`basename "$0"`"\" now."
 exit 1
fi
################################################################################
# E X E C U T I O N J A V A P R O P E R T I E S #
################################################################################
# Set LD_LIBRARY_PATH for Lotus Notes on Linux
if [ "Linux" = "${SYSTEM_OS}" ];
then
 NOTES_PROGRAM=`cat "$APP_HOME/bin/notesenv"`
 LD_LIBRARY_PATH="$APP_HOME/bin:$NOTES_PROGRAM:$LD_LIBRARY_PATH"
 export NOTES_PROGRAM
else
 LD_LIBRARY_PATH="$APP_HOME/bin:$LD_LIBRARY_PATH"
fi
LD_LIBRARY_PATH="${APP_BIN}/${DEP_LIB_PATH}":".":"${LD_LIBRARY_PATH}"
SHLIB_PATH="$LD_LIBRARY_PATH"
export LD_LIBRARY_PATH SHLIB_PATH
################################################################################
# J A V A E X E C U T I O N #
################################################################################
# Change to APP_BIN for JAVA execution
cd "${APP_BIN}"
# Reference path will be used to avoid empty space in the parent directory
LIB_HOME=.
JAVA_OPTS="-Xrs -Xms128m -Xmx2048m -XX:MaxDirectMemorySize=512m -client -
Dsun.nio.PageAlignDirectMemory=true"
JNI_PATH="-Djava.library.path=$LIB_HOME:$LIB_HOME/${DEP_LIB_PATH}"
CLASSPATH="$LIB_HOME:$LIB_HOME/cb.jar"
MAIN_CLASS=RunDataIntegrityCheck
echo "-"
echo "Using APP_HOME : $APP_HOME"
echo "Using SETTING_HOME : $SETTING_HOME"
echo "Using JAVA_HOME : $JAVA_HOME"
echo "Using JAVA_EXE : $JAVA_EXE"
echo "Using JAVA_OPTS : $JAVA_OPTS"
echo "Using JNI_PATH : $JNI_PATH"
echo "Using CLASSPATH : $CLASSPATH"
echo "-"
echo "Running data integrity check for backup set - '$BACKUP_SET', destination -
'$BACKUP_DEST' ..."
# API Arguments: RunDataIntegrityCheck [APP_HOME] [SETTING_HOME] [BACKUP_SET]
[BACKUP_DEST] [CRC_MODE] [REBUILD_MODE] [DELETE_PERMANENTLY_MODE]
# Do not include double-quote for java options, jni path, classpath and
# main class.
# Only apply double-quote for path to java executable and execution arguments
"${JAVA_EXE}" $JNI_PATH -cp $CLASSPATH $JAVA_OPTS $MAIN_CLASS "${APP_HOME}"
"${SETTING_HOME}" "${BACKUP_SET}" "${BACKUP_DEST}" "${CRC_MODE}"
"${REBUILD_MODE}" "${DELETE_PERMANENTLY_MODE}"
################################################################################
# R E S E T A N D E X I T #
################################################################################
cd "${EXE_DIR}"
exit 0

Once you have configured the parameters, save the changes. Use the sh command to run the script. The data integrity check will be run in the backup set.


# sh RunDataIntegrityCheck.sh
-
Using APP_HOME : /usr/local/obm
Using SETTING_HOME :
Using JAVA_HOME : /usr/local/obm/jvm
Using JAVA_EXE : /usr/local/obm/jvm/bin/java
Using JAVA_OPTS : -Xrs -Xms128m -Xmx2048m -XX:MaxDirectMemorySize=512m -
client -Dsun.nio.PageAlignDirectMemory=true
Using JNI_PATH : -Djava.library.path=.:./LinX64
Using CLASSPATH : .:./cb.jar
-
Running data integrity check for backup set - 'ALL', destination - 'ALL' ...
[doInfo] Start [ AhsayOBM v9.9.6.0 ]
[doStart] Start data integrity check on backup set "Backup Set 1
(1714618976774)" all destination, crc disabled, rebuild index disabled, empty
all files in recycle bin disabled
[doDetail] Start processing data integrity check on backup set= "Backup Set 1
" destination= "AhsayCBS"
[doLogProgress] Start processing data integrity check on backup set= "Backup
Set 1 " destination= "AhsayCBS"
[doInfo] Direct download index
/root/tmp/1714618976774/OBS@1714618999773/index/index.db
[doLogProgress] Skip download index since local index
"/root/tmp/1714618976774/OBS@1714618999773/index/index.db" is latest or
identical to destination copy on 2024-05-02-17-44-01 (SQLiteTempStoreDir:
/root/.obm/temp)
[doInfo] Skip download index since local index
"/root/tmp/1714618976774/OBS@1714618999773/index/index.db" is latest or
identical to destination copy on 2024-05-02-17-44-01 (SQLiteTempStoreDir:
/root/.obm/temp)
[doLogProgress] Browsing "/files/1714618976774"
[doLogProgress] Browsing "1714618976774/blocks/2024-05-02-17-11-53"
[doLogProgress] Browsing "1714618976774/blocks/2024-05-02-17-11-53/0"
[doInfo] Browsed File "1714618976774/blocks/2024-05-02-17-11-
53/0/000000.bak", size = 19291792
[doInfo] Browsed File "1714618976774/blocks/2024-05-02-17-11-
53/0/000001.bak", size = 22113184
[doInfo] Browsed File "1714618976774/blocks/2024-05-02-17-11-
53/0/000002.bak", size = 17512976
[doInfo] Browsed File "1714618976774/blocks/2024-05-02-17-11-
53/0/000003.bak", size = 17249584
[doInfo] Browsed File "1714618976774/blocks/2024-05-02-17-11-
53/0/000004.bak", size = 21629312
[doInfo] Browsed File "1714618976774/blocks/2024-05-02-17-11-
53/0/000005.bak", size = 17599504
[doInfo] Browsed File "1714618976774/blocks/2024-05-02-17-11-
53/0/000006.bak", size = 22658560
[doInfo] Browsed File "1714618976774/blocks/2024-05-02-17-11-
53/0/000007.bak", size = 24907248
[doInfo] Browsed File "1714618976774/blocks/2024-05-02-17-11-
53/0/000008.bak", size = 16787536
[doInfo] Browsed "1714618976774/blocks/2024-05-02-17-11-53/0", size =
179749696
[doInfo] Browsed File "1714618976774/blocks/2024-05-02-17-11-
53/backupInfo.db.1a000.18f38937398.cgz", size = 12784
[doInfo] Browsed File "1714618976774/blocks/2024-05-02-17-11-
53/index.db.71000.18f3893734a.cgz", size = 90448
[doInfo] Browsed File "1714618976774/blocks/2024-05-02-17-11-
53/index.metadata.json", size = 361
[doInfo] Browsed "1714618976774/blocks/2024-05-02-17-11-53", size = 179853289
[doLogProgress] Browsing "1714618976774/blocks/2024-05-02-17-13-00"
[doLogProgress] Browsing "1714618976774/blocks/2024-05-02-17-13-00/0"
[doInfo] Browsed File "1714618976774/blocks/2024-05-02-17-13-
00/0/000000.bak", size = 18508096
[doInfo] Browsed File "1714618976774/blocks/2024-05-02-17-13-
00/0/000001.bak", size = 18152592
[doInfo] Browsed File "1714618976774/blocks/2024-05-02-17-13-
00/0/000002.bak", size = 21794672
[doInfo] Browsed File "1714618976774/blocks/2024-05-02-17-13-
00/0/000003.bak", size = 19013440
[doInfo] Browsed File "1714618976774/blocks/2024-05-02-17-13-
00/0/000004.bak", size = 18743104
[doInfo] Browsed File "1714618976774/blocks/2024-05-02-17-13-
00/0/000005.bak", size = 21675040
[doInfo] Browsed File "1714618976774/blocks/2024-05-02-17-13-
00/0/000006.bak", size = 16289568
[doInfo] Browsed File "1714618976774/blocks/2024-05-02-17-13-
00/0/000007.bak", size = 5927088
[doInfo] Browsed File "1714618976774/blocks/2024-05-02-17-13-
00/0/000008.bak", size = 10459280
[doInfo] Browsed File "1714618976774/blocks/2024-05-02-17-13-
00/0/000009.bak", size = 582704
[doInfo] Browsed File "1714618976774/blocks/2024-05-02-17-13-
00/0/00000a.bak", size = 2360048
[doInfo] Browsed "1714618976774/blocks/2024-05-02-17-13-00/0", size =
153505632
[doInfo] Browsed File "1714618976774/blocks/2024-05-02-17-13-
00/backupInfo.db.e000.18f389492ab.cgz", size = 3888
[doInfo] Browsed File "1714618976774/blocks/2024-05-02-17-13-
00/index.db.79000.18f3894921e.cgz", size = 98752
[doInfo] Browsed File "1714618976774/blocks/2024-05-02-17-13-
00/index.metadata.json", size = 357
[doInfo] Browsed "1714618976774/blocks/2024-05-02-17-13-00", size = 153608629
[doLogProgress] Browsing "1714618976774/blocks/2024-05-02-17-44-01"
[doLogProgress] Browsing "1714618976774/blocks/2024-05-02-17-44-01/0"
[doInfo] Browsed File "1714618976774/blocks/2024-05-02-17-44-
01/0/000000.bak", size = 78368
[doInfo] Browsed File "1714618976774/blocks/2024-05-02-17-44-
01/0/000001.bak", size = 66336
[doInfo] Browsed File "1714618976774/blocks/2024-05-02-17-44-
01/0/000002.bak", size = 15472
[doInfo] Browsed File "1714618976774/blocks/2024-05-02-17-44-
01/0/000003.bak", size = 24448
[doInfo] Browsed File "1714618976774/blocks/2024-05-02-17-44-
01/0/000004.bak", size = 75984
[doInfo] Browsed File "1714618976774/blocks/2024-05-02-17-44-
01/0/000005.bak", size = 62000
[doInfo] Browsed "1714618976774/blocks/2024-05-02-17-44-01/0", size = 322608
[doInfo] Browsed File "1714618976774/blocks/2024-05-02-17-44-
01/backupInfo.db.20000.18f38b0ec30.cgz", size = 15408
[doInfo] Browsed File "1714618976774/blocks/2024-05-02-17-44-
01/index.db.88000.18f38b0ec30.cgz", size = 109248
[doInfo] Browsed File "1714618976774/blocks/2024-05-02-17-44-
01/index.metadata.json", size = 361
[doInfo] Browsed "1714618976774/blocks/2024-05-02-17-44-01", size = 447625
[doInfo] Iterating 0 / 419 (0%)
[doLogProgress] Iterating 0 / 419 (0%)
[doLogProgress] Processing Job "Current", ""
[doInfo] Vacuuming index
[doLogProgress] Vacuuming index
[doInfo] Vacuuming index... Completed
[doLogProgress] Vacuuming index... Completed
[doInfo] Searching block files to shrink 0 / 26 (0%)
[doLogProgress] Searching block files to shrink 0 / 26 (0%)
[doInfo] [Total] Items found in index size = 362928261 (346.1 MB)
[doInfo] [Total] Items found in index count = 416
[doInfo] [Total] Data corrupted items size = 0 (0 B)
[doInfo] [Total] Data corrupted items count = 0
[doInfo] [Total] Index broken data blocks size = 0 (0 B)
[doInfo] [Total] Index broken data blocks count = 0
[doInfo] [Total] Destination total size = 333909543 (318.4 MB)
[doInfo] [Total] Block data (BAK files) total size = 333577936 (318.1 MB)
[doInfo] [Total] Block data (BAK files) total count = 26
[doInfo] [Total] Data area compressed size = 333577936 (318.1 MB)
[doInfo] [Total] Data area uncompressed size = 339145034 (323.4 MB)
[doInfo] [Total] Data area file count = 33
[doInfo] [Total] Data area non block data size = 0 (0 B)
[doInfo] [Total] Retention area compressed size = 0 (0 B)
[doInfo] [Total] Retention area uncompressed size = 0 (0 B)
[doInfo] [Total] Retention area file count = 303
[doInfo] [Total] Retention area non block data size = 331607 (323.8 KB)
[doInfo] [Total] Block data dummy size = 18672 (18.2 KB)
[doInfo] [Total] Data size with deduplication = 339145034 (323.4 MB)
[doInfo] [Total] Data size without deduplication = 362928261 (346.1 MB)
[doInfo] [Total] Recycle bin size = 320 (320 B)
[doInfo] [Total] Recycle bin file count = 1
[doInfo] [Total] Total size saved by shrink block in destination (AhsayCBS):
0 (0 B) => 0 (0 B)
[doInfo] [Total] Percentage of BAK files size saved by shrink block: 0.00% (0
(0 B))
[doInfo] [Total] Total BAK files saved by shrink block: 0
[doInfo] Existing statistics of backup set= "Backup Set 1 " destination=
"AhsayCBS": Data area compressed size: 318.12 MB, Data area uncompressed size:
323.43 MB, Data area file count: 33, Retention area compressed size: 0B,
Retention area uncompressed size: 0B, Retention area file count: 303, Dedupe
saving uncompressed dedupe size: 22.68 MB, Dedupe saving uncompressed data
size: 369.67 MB, Dedupe saving uncompressed original size: 392.35 MB, Recycle
bin size: 320B, Recycle bin file count: 1
[doInfo] Recalculated statistics of backup set= "Backup Set 1 " destination=
"AhsayCBS": Data area compressed size: 318.12 MB, Data area uncompressed size:
323.43 MB, Data area file count: 33, Retention area compressed size: 0B,
Retention area uncompressed size: 0B, Retention area file count: 303, Dedupe
saving uncompressed dedupe size: 22.68 MB, Dedupe saving uncompressed data
size: 323.43 MB, Dedupe saving uncompressed original size: 346.12 MB, Recycle
bin size: 320B, Recycle bin file count: 1
[doInfo] The statistics of backup set= "Backup Set 1 " destination= "AhsayCBS"
is incorrect. It is now to update the statistics.
[doInfo] Deleting out of retention period recycled files, recycleBin enabled,
deleteAll disabled...
[doInfo] Delete out of retention period recycled files result - Size: 0 B,
File Count: 0
[doInfo] Deleting out of retention period recycled files, recycleBin enabled,
deleteAll disabled... Completed
[doLogProgress] Saving encrypted backup file index to
1714618976774/blocks/2024-05-02-17-45-00 at destination AhsayCBS...
[doInfo] Saving encrypted backup file index to 1714618976774/blocks/2024-05-
02-17-45-00 at destination AhsayCBS...
[doDetail] Data integrity check on backup set= "Backup Set 1 " destination=
"AhsayCBS" is completed
[doLogProgress] Data integrity check on backup set= "Backup Set 1 "
destination= "AhsayCBS" is completed
[doEnd][INFO] Finished data integrity check on backup set "Backup Set 1
(1714618976774)" all destination, crc disabled, rebuild index disabled, empty
all files in recycle bin disabled
[doInfo] Completed data integrity check on backup set "Backup Set 1
(1714618976774)" all destination, crc disabled, rebuild index disabled, empty
all files in recycle bin disabled