diff -urN sysbk-1.0/CHANGELOG sysbk-1.0-blw/CHANGELOG --- sysbk-1.0/CHANGELOG 2003-06-11 19:20:21.000000000 -0600 +++ sysbk-1.0-blw/CHANGELOG 2004-03-04 12:04:50.000000000 -0700 @@ -1,3 +1,8 @@ +1.0-blw: +- added MYSQL_USER option to specify the user to be used to perform dumps +- added support for POSTGRESQL databases. performs just like MYSQL, archiving +both the full database data path and the individual database SQL dumps + 1.0: - removed memory test operation - removed suming of backup size diff -urN sysbk-1.0/files/conf.sysbk sysbk-1.0-blw/files/conf.sysbk --- sysbk-1.0/files/conf.sysbk 2003-06-01 06:48:37.000000000 -0600 +++ sysbk-1.0-blw/files/conf.sysbk 2004-03-04 12:02:04.000000000 -0700 @@ -79,7 +79,20 @@ MYSQL_PID="/var/run/mysqld/mysqld.pid" # Location of MySQL PID file MYSQL_DUMP="/usr/bin/mysqldump" # Path to the 'mysqldump' binary MYSQL_MYICHK="/usr/bin/myisamchk" # Path to the 'myisamchk' binary -MYSQL_ROOTPW="" # MySQL Root password +MYSQL_USER="" # MySQL user to dumps +MYSQL_ROOTPW="" # MySQL user password + + +# PostgreSQL +# +POSTGRES_BK="0" # Enable/Disable postgresql backup operations [1=on,0=off] +POSTGRES_PATH="/var/lib/pgsql" # Installed location of postgresql [no trailing slash] +POSTGRES_INIT="/etc/init.d/postgresql" # Locationof PostgreSQL INIT script +POSTGRES_PID="/var/run/postmaster.5432.pid" # Location of postgreSQL PID file +POSTGRES_DUMP="/usr/bin/pg_dump" # Path to the 'pg_dump' binary +POSTGRES_USER="" # PostgreSQL user for dumps +POSTGRES_ROOTPW="" # PostgreSQL user password + # Cpanel # diff -urN sysbk-1.0/files/internals/internals.sysbk sysbk-1.0-blw/files/internals/internals.sysbk --- sysbk-1.0/files/internals/internals.sysbk 2003-06-01 06:48:49.000000000 -0600 +++ sysbk-1.0-blw/files/internals/internals.sysbk 2004-03-04 11:57:48.000000000 -0700 @@ -84,6 +84,10 @@ bin_sanity $MYSQL_INIT fi +if [ "$POSTGRES_BK" == "1" ]; then +bin_sanity $POSTGRES_INIT +fi + ARC_PRI_VAL=`echo "$ARC_PRI" | awk '{print$1}'` bin_sanity $ARC_PRI_VAL @@ -95,7 +99,7 @@ exit 1 fi -if [ "$MYSQL_BK" -eq "0" ] && [ "$BIND_BK" -eq "0" ] && [ "$HTTP_BK" -eq "0" ] && [ "$ENSIMVH_BK" -eq "0" ]; then +if [ "$MYSQL_BK" -eq "0" ] && [ "$POSTGRES_BK" -eq "0" ] && [ "$BIND_BK" -eq "0" ] && [ "$HTTP_BK" -eq "0" ] && [ "$ENSIMVH_BK" -eq "0" ]; then echo_fail echo "No backup operations configured, aborting..." echo "No backup operations configured, aborting..." >> $QLOG @@ -151,6 +155,9 @@ if [ ! -f "$MYSQL_PID" ]; then $MYSQL_INIT start >> /dev/null 2>&1 fi +if [ ! -f "$POSTGRES_PID" ]; then + $POSTGRES_INIT start >> /dev/null 2>&1 +fi if [ "$ENSIMVH_BK" = "1" ]; then for i in `$ENSIMVH_SL -a | tr ',' ' ' | awk '{print$1}'`; do if [ -d "/home/virtual/$i$BACKUP_PATH" ]; then diff -urN sysbk-1.0/files/mod/mysql.bk sysbk-1.0-blw/files/mod/mysql.bk --- sysbk-1.0/files/mod/mysql.bk 2003-05-20 23:24:07.000000000 -0600 +++ sysbk-1.0-blw/files/mod/mysql.bk 2004-03-04 12:08:58.000000000 -0700 @@ -61,13 +61,21 @@ if [ -d "$MYSQL_PATH/$i" ] && [ "$DIR_PREFIX" == "" ]; then echo -n " Dumping database $i: " echo -n " Dumping database $i: " >> $QLOG - $NICE -n $PRI $MYSQL_DUMP -l -p$MYSQL_ROOTPW $i > $BACKUP_PATH/$DATE/$i.sql + if [ "$MYSQL_USER" == "" ]; then + $NICE -n $PRI $MYSQL_DUMP -l -p$MYSQL_ROOTPW $i > $BACKUP_PATH/$DATE/$i.sql + else + $NICE -n $PRI $MYSQL_DUMP -l -u$MYSQL_USER -p$MYSQL_ROOTPW $i > $BACKUP_PATH/$DATE/$i.sql + fi arc $BACKUP_PATH/$DATE/$i.sql $i.sql rm -f $BACKUP_PATH/$DATE/$i.sql elif [ -d "$MYSQL_PATH/$i" ] && [ ! "$DIR_PREFIX" == "" ]; then echo -n " Dumping database $i: " echo -n " Dumping database $i: " >> $QLOG - $NICE -n $PRI $MYSQL_DUMP -l -p$MYSQL_ROOTPW $i > $BACKUP_PATH/$DATE/$DIR_PREFIX/$i.sql + if [ "$MYSQL_USER" == "" ]; then + $NICE -n $PRI $MYSQL_DUMP -l -p$MYSQL_ROOTPW $i > $BACKUP_PATH/$DATE/$DIR_PREFIX/$i.sql + else + $NICE -n $PRI $MYSQL_DUMP -l -u$MYSQL_USER -p$MYSQL_ROOTPW $i > $BACKUP_PATH/$DATE/$DIR_PREFIX/$i.sql + fi arc $BACKUP_PATH/$DATE/$DIR_PREFIX/$i.sql $i.sql mysql rm -f $BACKUP_PATH/$DATE/$DIR_PREFIX/$i.sql fi diff -urN sysbk-1.0/files/mod/postgres.bk sysbk-1.0-blw/files/mod/postgres.bk --- sysbk-1.0/files/mod/postgres.bk 1969-12-31 18:00:00.000000000 -0600 +++ sysbk-1.0-blw/files/mod/postgres.bk 2004-03-09 09:42:28.000000000 -0700 @@ -0,0 +1,70 @@ +DIR_PREFIX="postgres" +export PGPASSWORD="$POSTGRES_ROOTPW" + +if [ "$POSTGRES_BK" = "1" ]; then +echo "Performing PostgreSQL backup " +echo "Performing PostgreSQL backup " >> $QLOG +echo -n " Stage 1 PostgreSQL backup:" +echo -n " Stage 1 PostgreSQL backup:" >> $QLOG + +$POSTGRES_INIT stop >> /dev/null 2>&1 +if [ -f "$POSTGRES_PID" ]; then + $POSTGRES_INIT stop >> /dev/null 2>&1 + sleep 2 + if [ -f "$POSTGRES_PID" ]; then + echo_fail + echo "PostgreSQL could not be shutdown, aborting..." + echo "PostgreSQL could not be shutdown, aborting..." >> $QLOG + postbk + exit 1 + fi +fi + +SIM_CRON=`cat /etc/crontab | grep sim` +if [ -f "/usr/local/sim/sim" ] && [ ! "$SIM_CRON" == "" ]; then + chmod 000 /usr/local/sim/sim + SIM_OFF="1" +fi + + +arc $POSTGRES_PATH full-postgres postgres + + +echo " Stage 2 PostgreSQL backup:" +echo " Stage 2 PostgreSQL backup:" >> $QLOG +$POSTGRES_INIT start >> /dev/null 2>&1 +sleep 1 +POSTGRES_RVAL=`ps -auxww | grep postmaster | grep -v grep` +if [ "$POSTGRES_RVAL" = "" ] && [ ! -f "$POSTGRES_PID" ]; then + echo_fail + echo "PostgreSQL could not be started, aborting..." + echo "PostgreSQL could not be started, aborting..." >> $QLOG + postbk + exit 1 +elif [ "$POSTGRES_RVAL" = "" ]; then + echo_fail + echo "PostgreSQL could not be started, aborting..." + echo "PostgreSQL could not be started, aborting..." >> $QLOG + postbk + exit 1 +fi +if [ "$SIM_OFF" == "1" ]; then + chmod 755 /usr/local/sim/sim >> /dev/null 2>&1 + SIM_OFF="0" +fi +sleep 1 + +POSTGRES_USRDB=`psql -U sa -l | cut -d \| -f 1 -s - | cut -c2- - | sed 's/^ *//;s/ *$//'` +for i in $POSTGRES_USRDB; do + +if [ "$i" != "Name" ]; then + + echo -n " Dumping database $i: " + echo -n " Dumping database $i: " >> $QLOG + $NICE -n $PRI $POSTGRES_DUMP -U$POSTGRES_USER $i > $BACKUP_PATH/$DATE/$i.sql + arc $BACKUP_PATH/$DATE/$i.sql $i.sql + rm -f $BACKUP_PATH/$DATE/$i.sql + +fi +done +fi