Overview#
A custom script that was used in a Menu System for a couple of clients.Primary Purpose#
This script performs a ndsrepair -R -l and redirects the output to the /var/nds/autodsrp.log. The LDAPBuild Process distribute the file to:Deployed Location#
The LDAPBuild Process distribute the <buildhome>Directory-Info.com/config/autodsrp.sh file to /usr/bin/autodsrp.shMethod of Execution #
The script is run via cron.tabLogging#
The script creates a log file /var/nds/autodsrp.log.In addtion, the script writes a log file to /var/nds/autodsrp.csv.
Other Notable Features#
The Tivoli agent monitors the /var/nds/autodsrp.log for the word "ERROR:" and sends an alert containing the line.NOTE:Check file in the NDSBuild directory for the latest version.
Typical script content as implemented is shown below as of: 2005-07-29.
#!/bin/bash #:autodsrp.sh # # Modification history: # 12/6/2002-- Added Y-m-d to BEGIN and END tag in the log # 2/25/2003-- Fixed undesired logging to /var/b1nds.log # Removed SUDO from command line (ndsuser can now directly # execute ndsrepair) # Converted to use printf instead of echo (different handling of # backslach characters in bash) # 11/13/2003-- Checkd for 8.7.1 # 4/5/2004 -- Fixed DOS cr/lf problem # 1/24/2005-- Significantly improved logging if [ -f /var/nds/.ndsenv ] then . /var/nds/.ndsenv_functions . /var/nds/.ndsenv else printf "\nMissing /var/nds/.ndsenv -- cannot run!\n" exit 1 fi # Ignore hangup -- may be an issue when running with a large DIB trap ' ' 1 # Turn off normal logging as ndsrepair output will go to autodsrp.log log_file="" # Specifiy location for autodsrp run history will go log_history=/var/nds/autodsrp.csv # BEGIN Main routine f_write_and_log "\n`date '+%Y-%m-%d %H:%M:%S'`: BEGIN $0\n" # 'ndsrepair' switches used here # # -R Repair the Local Database # -A no Resets the ndsrepair.log file (keeps the log from growing out of control) # -l yes Locks the eDirectory database during the repair operation # # By default -i, -d, -t, -r, -v and -c options are set. Their meanings are listed below: # -d Rebuilds the entire database # -t Performs a tree structure check # -i Checks the eDirectory database structure and the index # -r Repairs all the local replicas # -v Validates the stream files # -c Checks local references # Rotate previous log files if [ -f $edirPATH/autodsrp.5.log ]; then rm $edirPATH/autodsrp.5.log; fi if [ -f $edirPATH/autodsrp.4.log ]; then mv $edirPATH/autodsrp.4.log $edirPATH/autodsrp.5.log; fi if [ -f $edirPATH/autodsrp.3.log ]; then mv $edirPATH/autodsrp.3.log $edirPATH/autodsrp.4.log; fi if [ -f $edirPATH/autodsrp.2.log ]; then mv $edirPATH/autodsrp.2.log $edirPATH/autodsrp.3.log; fi if [ -f $edirPATH/autodsrp.1.log ]; then mv $edirPATH/autodsrp.1.log $edirPATH/autodsrp.2.log; fi if [ -f $edirPATH/autodsrp.log ]; then mv $edirPATH/autodsrp.log $edirPATH/autodsrp.1.log; fi # Record start time startTime=`date '+%Y-%m-%d %I:%M:%S %p'` # Execute the ndsrepair process $bindir/ndsrepair -R -l no -F $edirPATH/autodsrp.log -A no>/dev/null # Record end time endTime=`date '+%Y-%m-%d %I:%M:%S %p'` # Parse other "interesting" details from the log file dibOjbs=`grep "Total Objects in Database" $edirPATH/autodsrp.log | cut -d: -f2 | tr -d " "` result=`grep "Repair process" /var/nds/autodsrp.log | tail -1` # Write history log printf "`hostname`,\"$startTime\",\"$endTime\",$dibOjbs,\"$result\"\n" printf "`hostname`,\"$startTime\",\"$endTime\",$dibOjbs,\"$result\"\n">>$log_history f_write_and_log "\n`date '+%Y-%m-%d %H:%M:%S'`: END $0\n"