Annotation of badi/public_scripts/parallelstarter/db_backup/generate_arglist, revision 1.1.1.1

1.1       adi         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>