Compare commits

..

No commits in common. "b4f8834d5177689fb13a9ddeefafe2bbcdfbb017" and "edba57caaf6c0cc034b5646f6499a96b42bdd61f" have entirely different histories.

3 changed files with 64 additions and 56 deletions

View File

@ -1,13 +1,15 @@
#
# openLDAP backup script parameters file
# version 4.0
#
#######
### openLDAP backup script parameters file
### version 3.2
#######
### This file should be protected since it contains the password used to
### encrypt your backup files!
### recommend at least:
### chown root:root backup.parameters
### chmod 600 backup.parameters
# This file should be protected since it contains the password used to
# encrypt your backup files!
# recommend at least:
# chown root:root backup.parameters
# chmod 600 backup.parameters
# password used to encrypt backup
password='myPassword'

View File

@ -1,8 +1,8 @@
#!/bin/sh
#
# backup openLDAP configuration and frontend database(s)
# version 4.0
### backup openLDAP configuration and frontend database(s)
# version 3.2
#
@ -132,12 +132,12 @@ scriptHelp () {
textblock "${bold}${magenta}Usage: ${scriptName} [parameters]${norm}"
printf "\n"
textblock "${cyan}Parameters ${yellow}(default value):${norm}"
textblock "There are NO mandatory parameters. By default the script will run in 'backup' mode and save an encrypted backup archive to the current directory. If a parameter is not supplied, its default value will be used. In the case of a switch parameter, it will remain deactivated if not specified."
textblock "There are NO mandatory parameters. By default the script will run in 'backup' mode and save an encrypted backup archive to the current directory. If a parameter is not supplied, it's default value will be used. In the case of a switch parameter, it will remain deactivated if not specified."
printf "\n"
textblock "${bold}*** Common parameters ***${norm}"
printf "\n"
textblock "${cyan}-l, --log ${yellow}(scriptPath/scriptName.log)${norm}"
textblock "FULL path to write log file. If you supply a path ending with a slash ('/') it will be assumed you mean a directory and the log file will be written to that directory using the format 'path/scriptname.log'. If you supply only a filename (no slashes anywhere), it will be assumed you want to save the log using that name in the script directory. The script will attempt to create any provided paths/directories if they do not exist."
textblock "FULL path to write log file. If you supply a path ending with a slash ('/') it will be assumed you mean a directory and the log file will be written to that directory using the format 'path/scriptname.log'. If you supply only a filename (no slashes anywhere), it will assumed you want to save the log using that name in the script directory. The script will attempt to create any provided paths/directories if they do not exist."
printf "\n"
textblock "${cyan}-o, --output ${yellow}(scriptPath/)${norm}"
textblock "Location where the output files should be saved on this machine. You should only specify a *directory* here (trailing slash optional). File names are automatic and cannot be changed via this script. All restore operations will create a 'restore' subdirectory in this specified directory."

View File

@ -1,12 +1,11 @@
#!/bin/sh
#
# update script for ab-openldap container and utility scripts
### update script for ab-openldap container and utility scripts
# version 1.0.0
# script by Asif Bacchus
# usage of this script is subject to the license terms found at:
# https://git.asifbacchus.app/ab-docker/scripts/LICENSE
#
### pre-requisites
@ -33,53 +32,55 @@ updateSuccess=0
# reference constants
containerName='ab-openldap'
containerUpdatePath='docker.asifbacchus.app/ldap/ab-openldap:latest'
serverPath="https://asifbacchus.app/public/$containerName/"
server="https://git.asifbacchus.app/ab-docker/scripts/raw/branch/master/$containerName/"
checksumFilename='checksums.sha256'
# files to update
scriptName='ab-openldap-update.sh'
updateFiles="ab-openldap-backup.params.template ab-openldap-backup.sh ab-openldap.params.template ab-openldap.sh"
printf "\nUpdating %s:\n" "$containerName"
localScriptName='update.sh'
repoScriptName='update.sh'
updateFiles="ab-openldap.sh ab-openldap.params.template backup.sh backup.params.template"
### update container
printf "\n*** Updating %s container and service scripts ***\n\n" "$containerName"
printf "updating container... "
printf "Updating container:\n"
if ! docker pull "$containerUpdatePath"; then
printf "[ERROR]\n\n"
printf "There was an error updating the container. Try again later.\n\n"
exit 1
else
printf "[OK]\n"
printf "Container updated!\n\n"
fi
### checksums
printf "downloading latest checksums... "
if ! wget --quiet --tries=3 --timeout=10 -O "$checksumFilename" "$serverPath$checksumFilename"; then
printf "[ERROR]\n\n"
printf "Unable to download updated checksums. Try again later.\n\n"
### update scripts
printf "Updating %s service scripts\n" "$containerName"
## download latest checksums
printf "Getting latest checksums from ab-git server... "
if ! wget --quiet --tries=3 --timeout=10 -N "${server}${checksumFilename}"; then
printf "[ERROR]\n"
printf "Unable to download checksums from ab-git server. Try again later.\n\n"
exit 1
else
printf "[OK]\n"
fi
### script self-update
printf "checking for updates to this script... "
localScriptChecksum=$( sha256 "./$scriptName" | grep -o '^\S*' )
repoScriptChecksum=$( grep "$scriptName" "$checksumFilename" | grep -o '^\S*' )
## check for updates to this script
printf "Checking for updates to this script... "
repoScriptChecksum=$( grep "$repoScriptName" "$checksumFilename" | grep -o '^\S*' )
localScriptChecksum=$( sha256sum "$localScriptName" | grep -o '^\S*' )
if [ "$localScriptChecksum" = "$repoScriptChecksum" ]; then
printf "[NONE]\n"
else
# download updated script
if ! wget --quiet --tries=3 --timeout=10 -O "$scriptName" "$serverPath$scriptName"; then
printf "[ERROR]\n\n"
if ! wget --quiet --tries=3 --timeout=10 -O $localScriptName "${server}${repoScriptName}"; then
printf "[ERROR]\n"
printf "Unable to download script update. Try again later.\n\n"
exit 1
else
# verify download
localScriptChecksum=$( sha256sum "$scriptName" | grep -o '^\S*' )
localScriptChecksum=$( sha256sum "$localScriptName" | grep -o '^\S*' )
if ! [ "$localScriptChecksum" = "$repoScriptChecksum" ]; then
printf "[ERROR]\n"
printf "Unable to verify checksum of updated script. Try again later.\n\n"
@ -95,31 +96,36 @@ fi
set -- dummy $updateFiles
shift
for file; do
printf "\nchecking '%s' for updates... " "$file"
repoFileChecksum=$( grep "$file" "$checksumFilename" | grep -o '^\S*' )
updateTarget="$file"
printf "\nChecking '%s' for updates... " "$updateTarget"
repoFile=$( grep "$updateTarget" "$checksumFilename" | grep -o '^\S*' )
if [ -f "$file" ]; then
localFileChecksum=$( sha256sum "$file" | grep -o '^\S*' )
localFile=$( sha256sum "$updateTarget" | grep -o '^\S*' )
else
localFileChecksum=0
localFile=0
fi
if ! [ "$localFileChecksum" = "$repoFileChecksum" ]; then
if ! [ "$localFile" = "$repoFile" ]; then
printf "[AVAILABLE]\n"
updatesAvailable=$((updatesAvailable+1))
# download update
printf "Downloading updated '%s'... " "$file"
if ! wget --quiet --tries=3 --timeout=10 -O "$file" "$serverPath$file"; then
printf "Downloading updated '%s'... " "$updateTarget"
# specify a name here instead of using the server name so that wget
# overwrites the file
if ! wget --quiet --tries=3 --timeout=10 -O "$updateTarget" "${server}${updateTarget}"; then
printf "[ERROR]\n"
downloadFailed=$((downloadFailed+1))
else
printf "[OK] "
printf "[OK]\n"
downloadSuccess=$((downloadSuccess+1))
# verify download
localFileChecksum=$( sha256sum "$file" | grep -o '^\S*' )
if ! [ "$localFileChecksum" = "$repoFileChecksum" ]; then
printf "Verifying '%s'... " "$updateTarget"
localFile=$( sha256sum "$updateTarget" | grep -o '^\S*' )
if ! [ "$localFile" = "$repoFile" ]; then
printf "[INVALID]\n"
updateFailed=$((updateFailed+1))
else
printf "[VERIFIED]\n"
printf "[OK]\n"
updateSuccess=$((updateSuccess+1))
fi
fi