mirror of
https://github.com/deajan/obackup.git
synced 2024-11-12 19:03:42 +01:00
More fixes from osync
This commit is contained in:
parent
6f697cc63f
commit
2167bc8e09
@ -1,14 +1,15 @@
|
||||
#### MINIMAL-FUNCTION-SET BEGIN ####
|
||||
|
||||
## FUNC_BUILD=2016111401
|
||||
## FUNC_BUILD=2016111502
|
||||
## BEGIN Generic bash functions written in 2013-2016 by Orsiris de Jong - http://www.netpower.fr - ozy@netpower.fr
|
||||
|
||||
## To use in a program, define the following variables:
|
||||
## PROGRAM=program-name
|
||||
## INSTANCE_ID=program-instance-name
|
||||
## _DEBUG=yes/no
|
||||
## _LOGGER_STDERR=True/False
|
||||
## _LOGGER_ERR_ONLY=True/False
|
||||
## _LOGGER_STDERR=true/false
|
||||
## _LOGGER_ERR_ONLY=true/false
|
||||
## _LOGGER_PREFIX="date"/"time"/""
|
||||
|
||||
#TODO: Windows checks, check sendmail & mailsend
|
||||
|
||||
@ -51,7 +52,9 @@ if [ ! "$_DEBUG" == "yes" ]; then
|
||||
SLEEP_TIME=.05 # Tested under linux and FreeBSD bash, #TODO tests on cygwin / msys
|
||||
_VERBOSE=false
|
||||
else
|
||||
SLEEP_TIME=1
|
||||
if [ "$SLEEP_TIME" == "" ]; then
|
||||
SLEEP_TIME=1
|
||||
fi
|
||||
trap 'TrapError ${LINENO} $?' ERR
|
||||
_VERBOSE=true
|
||||
fi
|
||||
@ -140,11 +143,11 @@ function Logger {
|
||||
ERROR_ALERT=true
|
||||
return
|
||||
elif [ "$level" == "WARN" ]; then
|
||||
_Logger "$prefix\e[93m$value\e[0m" "$prefix$level:$value" "$level:$value"
|
||||
_Logger "$prefix\e[33m$value\e[0m" "$prefix$level:$value" "$level:$value"
|
||||
WARN_ALERT=true
|
||||
return
|
||||
elif [ "$level" == "NOTICE" ]; then
|
||||
if [ "$_LOGGER_ERR_ONLY" != True ]; then
|
||||
if [ "$_LOGGER_ERR_ONLY" != true ]; then
|
||||
_Logger "$prefix$value"
|
||||
fi
|
||||
return
|
||||
@ -153,6 +156,11 @@ function Logger {
|
||||
_Logger "$prefix$value"
|
||||
fi
|
||||
return
|
||||
elif [ "$level" == "ALWAYS" ]; then
|
||||
if [ $_SILENT != true ]; then
|
||||
_Logger "$prefix$value" "$prefix$level:$value" "$level:$value"
|
||||
fi
|
||||
return
|
||||
elif [ "$level" == "DEBUG" ]; then
|
||||
if [ "$_DEBUG" == "yes" ]; then
|
||||
_Logger "$prefix$value"
|
||||
@ -276,9 +284,9 @@ function SendAlert {
|
||||
eval "cat \"$LOG_FILE\" $COMPRESSION_PROGRAM > $ALERT_LOG_FILE"
|
||||
if [ $? != 0 ]; then
|
||||
Logger "Cannot create [$ALERT_LOG_FILE]" "WARN"
|
||||
attachment=False
|
||||
attachment=false
|
||||
else
|
||||
attachment=True
|
||||
attachment=true
|
||||
fi
|
||||
body="$MAIL_ALERT_MSG"$'\n\n'"$CURRENT_LOG"
|
||||
|
||||
@ -296,14 +304,14 @@ function SendAlert {
|
||||
subject="Fnished run - $subject"
|
||||
fi
|
||||
|
||||
if [ "$attachment" == True ]; then
|
||||
if [ "$attachment" == true ]; then
|
||||
attachmentFile="$ALERT_LOG_FILE"
|
||||
fi
|
||||
|
||||
SendEmail "$subject" "$body" "$DESTINATION_MAILS" "$attachmentFile" "$SENDER_MAIL" "$SMTP_SERVER" "$SMTP_PORT" "$ENCRYPTION" "SMTP_USER" "$SMTP_PASSWORD"
|
||||
|
||||
# Delete tmp log file
|
||||
if [ "$attachment" == True ]; then
|
||||
if [ "$attachment" == true ]; then
|
||||
if [ -f "$ALERT_LOG_FILE" ]; then
|
||||
rm -f "$ALERT_LOG_FILE"
|
||||
fi
|
||||
@ -469,7 +477,7 @@ function TrapError {
|
||||
local code="${2:-1}"
|
||||
|
||||
if [ $_SILENT == false ]; then
|
||||
echo -e " /!\ ERROR in ${job}: Near line ${line}, exit code ${code}"
|
||||
echo -e "\e[45m/!\ ERROR in ${job}: Near line ${line}, exit code ${code}\e[0m"
|
||||
fi
|
||||
}
|
||||
|
||||
@ -495,7 +503,7 @@ function LoadConfigFile {
|
||||
}
|
||||
|
||||
function Spinner {
|
||||
if [ $_SILENT == true ]; then
|
||||
if [ $_SILENT == true ] || [ "$_LOGGER_ERR_ONLY" == true ]; then
|
||||
return 0
|
||||
fi
|
||||
|
||||
@ -909,8 +917,7 @@ function GetLocalOS {
|
||||
local localOsVar
|
||||
|
||||
# There's no good way to tell if currently running in BusyBox shell. Using sluggish way.
|
||||
ls --help 2>&1 | grep -i BusyBox > /dev/null
|
||||
if [ $? == 0 ]; then
|
||||
if ls --help 2>&1 | grep -i "BusyBox" > /dev/null; then
|
||||
localOsVar="BusyBox"
|
||||
else
|
||||
localOsVar="$(uname -spio 2>&1)"
|
||||
@ -955,6 +962,73 @@ function GetLocalOS {
|
||||
function GetRemoteOS {
|
||||
__CheckArguments 0 $# ${FUNCNAME[0]} "$@" #__WITH_PARANOIA_DEBUG
|
||||
|
||||
local remoteOsVar
|
||||
|
||||
$SSH_CMD bash -s << 'ENDSSH' >> "$RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID" 2>&1
|
||||
|
||||
function GetOs {
|
||||
local localOsVar
|
||||
|
||||
# There's no good way to tell if currently running in BusyBox shell. Using sluggish way.
|
||||
if ls --help 2>&1 | grep -i "BusyBox" > /dev/null; then
|
||||
localOsVar="BusyBox"
|
||||
else
|
||||
localOsVar="$(uname -spio 2>&1)"
|
||||
if [ $? != 0 ]; then
|
||||
localOsVar="$(uname -v 2>&1)"
|
||||
if [ $? != 0 ]; then
|
||||
localOsVar="$(uname)"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "$localOsVar"
|
||||
}
|
||||
|
||||
GetOs
|
||||
|
||||
ENDSSH
|
||||
|
||||
if [ -f "$RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID" ]; then
|
||||
remoteOsVar=$(cat "$RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID")
|
||||
case $remoteOsVar in
|
||||
*"Linux"*)
|
||||
REMOTE_OS="Linux"
|
||||
;;
|
||||
*"BSD"*)
|
||||
REMOTE_OS="BSD"
|
||||
;;
|
||||
*"MINGW32"*|*"CYGWIN"*)
|
||||
REMOTE_OS="msys"
|
||||
;;
|
||||
*"Darwin"*)
|
||||
REMOTE_OS="MacOSX"
|
||||
;;
|
||||
*"BusyBox"*)
|
||||
REMOTE_OS="BUSYBOX"
|
||||
;;
|
||||
*"ssh"*|*"SSH"*)
|
||||
Logger "Cannot connect to remote system." "CRITICAL"
|
||||
exit 1
|
||||
;;
|
||||
*)
|
||||
if [ "$IGNORE_OS_TYPE" == "yes" ]; then #DOC: Undocumented debug only setting
|
||||
Logger "Running on unknown remote OS [$remoteOsVar]." "WARN"
|
||||
return
|
||||
fi
|
||||
Logger "Running on remote OS failed. Please report to the author if the OS is not supported." "CRITICAL"
|
||||
Logger "Remote OS said:\n$remoteOsVar" "CRITICAL"
|
||||
exit 1
|
||||
esac
|
||||
Logger "Remote OS: [$remoteOsVar]." "DEBUG"
|
||||
else
|
||||
Logge "Cannot get Remote OS" "CRITICAL"
|
||||
fi
|
||||
}
|
||||
|
||||
function oldGetRemoteOS {
|
||||
__CheckArguments 0 $# ${FUNCNAME[0]} "$@" #__WITH_PARANOIA_DEBUG
|
||||
|
||||
local retval
|
||||
local cmd
|
||||
local remoteOsVar
|
||||
@ -963,7 +1037,7 @@ function GetRemoteOS {
|
||||
CheckConnectivity3rdPartyHosts
|
||||
CheckConnectivityRemoteHost
|
||||
|
||||
cmd=$SSH_CMD' "ls --help 2>&1 | grep -i BusyBox > /dev/null"'
|
||||
cmd=$SSH_CMD' "if [ ls --help 2>&1 | grep -i BusyBox > /dev/null ]; then exit 0; else exit 1"'
|
||||
Logger "cmd: $cmd" "DEBUG"
|
||||
eval "$cmd" &
|
||||
WaitForTaskCompletion $! 120 240 ${FUNCNAME[0]}"-0" true $KEEP_LOGGING
|
||||
@ -1360,7 +1434,7 @@ function PreInit {
|
||||
RSYNC_ARGS="-rltD"
|
||||
if [ "$_DRYRUN" == true ]; then
|
||||
RSYNC_DRY_ARG="-n"
|
||||
DRY_WARNING="/!\ DRY RUN"
|
||||
DRY_WARNING="/!\ DRY RUN "
|
||||
else
|
||||
RSYNC_DRY_ARG=""
|
||||
fi
|
||||
|
Loading…
Reference in New Issue
Block a user