File:  [Local Repository] / badi / public_scripts / parallelstarter / db_backup / generate_arglist
Revision 1.1: download - view: text, annotated - select for diffs - revision graph
Mon Jul 18 11:49:04 2011 UTC (12 years, 11 months ago) by adi
Branches: MAIN
CVS tags: HEAD
Initial revision

    1: # Prepare db_backup to be run with parallelstarter:
    2: # generate arglist from password file
    3: 
    4: # step through DBLIST and convert each line 
    5: # into a set of command line args for db_backup
    6: 
    7: if [ -e "$ARGLIST_FILE" ]; then
    8: 	rm "$ARGLIST_FILE"
    9: fi
   10: 
   11: while read dbinfo; do
   12: 
   13: 	# ignore comment and empty lines
   14: 	if [ $(echo "$dbinfo" | egrep -c "^[ \t]*#.*$") -gt 0 ]; then
   15:  	       continue
   16: 	fi
   17: 	
   18: 	# ignore empty lines or malformed lines
   19: 	if [ $(echo "$dbinfo" | sed 's/[^:]//g' | wc -m) -lt 4 ]; then
   20: 		continue
   21: 	fi
   22: 
   23: 	curhost="`echo $(echo "$dbinfo" | awk -F ':' '{print $1}')`"
   24:         curdb="`echo $(echo "$dbinfo" | awk -F ':' '{print $3}')`"
   25:         curuser="`echo $(echo "$dbinfo" | awk -F ':' '{print $4}')`"
   26:         curtype="`echo $(echo "$dbinfo" | awk -F ':' '{print $2}')`"
   27: 	curpw="`echo $(echo "$dbinfo" | awk -F ':' '{print $5}')`"
   28: 
   29: 	echo "-h $curhost -D $curdb -u $curuser -c $DBLIST -t $curtype" >> "$ARGLIST_FILE"
   30: 	
   31: 	# write .pgpass in case there is a PostgreSQL DB involved
   32: 	if [ "$curtype" = "postgresql" ]; then
   33: 		# see if password is already registered
   34: 		if [ ! -e "$HOME/.pgpass" ]; then
   35: 			touch "$HOME/.pgpass"
   36: 			chmod 600 "$HOME/.pgpass"
   37: 		fi
   38: 		if [ $(grep -c "$curhost:$PGPORT:$curdb:$curuser" "$HOME/.pgpass") -eq 0 ]; then
   39: 			# add the line to .pgpass
   40: 			echo "$curhost:$PGPORT:$curdb:$curuser:$curpw" >> "$HOME/.pgpass"
   41: 		elif [ $(grep -c "$curhost:$PGPORT:$curdb:$curuser:$curpw" "$HOME/.pgpass") -eq 0 ]; then
   42: 			# the pw has changed; replace the password with new value
   43: 			mv "$HOME/.pgpass" "$HOME/.pgpass.old"
   44: 			touch "$HOME/.pgpass"
   45: 			chmod 600 "$HOME/.pgpass"
   46: 			grep -v "$curhost:$PGPORT:$curdb:$curuser" "$HOME/.pgpass.old" >> "$HOME/.pgpass"
   47: 			echo "$curhost:$PGPORT:$curdb:$curuser:$curpw" >> "$HOME/.pgpass"
   48: 		fi
   49: 	fi
   50: 
   51: done < "$DBLIST"

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>