I’m really not on form this week, maybe I should just go home l-)
Thanks to Mark and Noriko for the thoughts and suggestions, and of course Rich
for his patience!
Here’s that script again, it’s cut down so still might not be bug free, however
STATUS -1 means the backup task failed I’ve taken that into account in this
version (I just forgot, J).
INSTANCE=<hostname>; # Hostname is the
default instance name.
BACKUPCMD="/usr/lib64/dirsrv/slapd-${INSTANCE}/db2bak.pl"; # 389-DS Backup
Script.
HOSTURI="<LDAP URL>" # Search this host
for backup task
PWFILE="/root/.389ds-pw"
BINDAS="cn=Directory Manager" # Connect to
Directory as this user.
BACKUPOPTS="-j ${PWFILE}" # Tacked in
Password File.
BACKUPPATH="/usr/backup/"; # Where to store
backups
# Create temp file to store command results (subshells / subsitution break
# PIPESTATUS)
tempFile=$(mktemp) || {
echo "Failed to create temporary file for Task ($?)";
exit 1;
}
# Run backup, log if error, added -v + grep/cut to get task CN from output:
${BACKUPCMD} -v -D "${BINDAS}" ${BACKUPOPTS} -a ${DSBACKUPDIR} 2> /dev/null |
grep "^cn:" | cut -f2 -d' ' > $tempFile
# Save exit code of $BACKUPCMD (db2bak.pl)
ERR=${PIPESTATUS[0]}
if [ ${ERR} -ne 0 ]; then
echo "Backup Failed (${ERR}).";
exit 1;
fi
# Grab the CN
taskCN=$(<${tempFile})
STATUS=1
while [ ${STATUS} -ne 0 ]; do
ldapsearch -x -H ${HOSTURI} -D "${BINDAS}" -y ${PWFILE} -s base -b
"cn=${taskCN},cn=backup,cn=tasks,cn=config" nstaskexitcode | grep -i
'^nstaskexitcode:' | cut -f2 -d' ' > $tempFile
ERR=${PIPESTATUS[0]}
# Check that the object was found. If not, assume task completed and we missed
# capturing the exit status.
if [ $ERR -eq 32 ]; then
STATUS=0;
else
STATUS=$(<${tempFile})
if [ "${STATUS}" == "" ]; then
# No status for task yet, so make script wait.
STATUS=1
fi
fi
if [ ${STATUS} -ne 0 ]; then
if [ ${STATUS} -eq -1 ]; then
# Running task has failed for some reason.
echo "Backup failed during processing (${STATUS}).";
exit 1;
fi
# Otherwise, snooze for a bit…
sleep 5s
fi
done
Hope this helps someone out.
-------------------------------------------------------------------
This e-mail and any attachments, which may contain information that is
confidential and/or protected by intellectual property rights, are intended for
the exclusive use of the above-mentioned addressee(s). Any use (including
reproduction, disclosure and whole or partial distribution in any form
whatsoever) of their content is prohibited without prior authorization of NRB.
If you have received this message by error, please contact the sender promptly
by resending this e-mail back to him (her), or by calling the above number.
Thank you for subsequently deleting this e-mail and any files attached thereto.
-------------------------------------------------------------------
--
389 users mailing list
[email protected]
https://admin.fedoraproject.org/mailman/listinfo/389-users