Annotation of badi/public_scripts/parallelstarter/db_backup/generate_arglist, revision 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>