Added check/create tmp folder for borg to circumvent /tmp noexec problem
This commit is contained in:
parent
15bf15269d
commit
fc3c793dc2
@ -241,6 +241,7 @@ unset BORG_RSH
|
|||||||
unset BORG_REPO
|
unset BORG_REPO
|
||||||
unset BORG_PASSPHRASE
|
unset BORG_PASSPHRASE
|
||||||
unset BORG_REMOTE_PATH
|
unset BORG_REMOTE_PATH
|
||||||
|
unset TMPDIR
|
||||||
exitError=()
|
exitError=()
|
||||||
errorExplain=()
|
errorExplain=()
|
||||||
exitWarn=()
|
exitWarn=()
|
||||||
@ -255,6 +256,7 @@ errorExplain[200]="Could not dump NextCloud SQL database"
|
|||||||
errorExplain[210]="Invalid or non-existant borg base directory specified (borg backup details file)"
|
errorExplain[210]="Invalid or non-existant borg base directory specified (borg backup details file)"
|
||||||
errorExplain[211]="Invalid or non-existant path to borg SSH keyfile (borg backup details file)"
|
errorExplain[211]="Invalid or non-existant path to borg SSH keyfile (borg backup details file)"
|
||||||
errorExplain[212]="Name of borg repo was not specified (borg backup details file)"
|
errorExplain[212]="Name of borg repo was not specified (borg backup details file)"
|
||||||
|
errorExplain[215]="Could not find/create 'tmp' directory within borg base directory. Please manually create it and ensure it's writable"
|
||||||
errorExplain[220]="Borg exited with a critical error. Please check this script's logfile for details"
|
errorExplain[220]="Borg exited with a critical error. Please check this script's logfile for details"
|
||||||
errorExplain[221]="Borg prune exited with ERRORS. Please check this script's logfile for details"
|
errorExplain[221]="Borg prune exited with ERRORS. Please check this script's logfile for details"
|
||||||
|
|
||||||
@ -634,6 +636,40 @@ else
|
|||||||
exitWarn+=('2114')
|
exitWarn+=('2114')
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
## Export TMPDIR environment variable for borg via python
|
||||||
|
## Python requires a writable temporary directory when unpacking borg and
|
||||||
|
## executing commands. This defaults to /tmp but many systems mount /tmp with
|
||||||
|
## the 'noexec' option for security. Thus, we will use/create a 'tmp' folder
|
||||||
|
## within the BORG_BASE_DIR and instruct python to use that instead of /tmp
|
||||||
|
# check if BORG_BASE_DIR/tmp exists, if not, create it
|
||||||
|
echo -e "${op}${stamp} Checking for tmp directory for borg..." \
|
||||||
|
"${normal}" >> "$logFile"
|
||||||
|
checkExist fd "$BORG_BASE_DIR/tmp"
|
||||||
|
checkResult="$?"
|
||||||
|
if [ "$checkResult" = "1" ]; then
|
||||||
|
# folder not found
|
||||||
|
mkdir "$BORG_BASE_DIR/tmp" 2>> "$logFile"
|
||||||
|
# verify folder created
|
||||||
|
checkExist fd "$BORG_BASE_DIR/tmp"
|
||||||
|
if [ "$checkResult" = "0" ]; then
|
||||||
|
# folder exists
|
||||||
|
echo -e "${op}${stamp} tmp folder created within borg base directory" \
|
||||||
|
"${normal}" >> "$logFile"
|
||||||
|
else
|
||||||
|
# problem creating folder and script will exit
|
||||||
|
exitError+=('215')
|
||||||
|
cleanup
|
||||||
|
quit
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
# folder found
|
||||||
|
echo -e "${op}${stamp} tmp folder found within borg base directory" \
|
||||||
|
"${normal}" >> "$logFile"
|
||||||
|
fi
|
||||||
|
# export TMPDIR environment variable
|
||||||
|
export TMPDIR="${BORG_BASE_DIR%/}/tmp"
|
||||||
|
|
||||||
|
|
||||||
## Generate and execute borg
|
## Generate and execute borg
|
||||||
# commandline depends on whether borgExclude is empty or not
|
# commandline depends on whether borgExclude is empty or not
|
||||||
if [ -z "$borgExclude" ]; then
|
if [ -z "$borgExclude" ]; then
|
||||||
|
Loading…
Reference in New Issue
Block a user