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. ------------------------------------------------------------------- GreeNRB NRB, daring to commit |
-- 389 users mailing list 389-users@xxxxxxxxxxxxxxxxxxxxxxx https://admin.fedoraproject.org/mailman/listinfo/389-users