Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: --comments=0 parameter needed otherwise a date is inserted so that the result file is always different

...

No Format
#!/bin/bash

PW=
MYSQLDBDIR=/var/lib/mysql
BACKUPDIR=/home/backups/mysql
mkdir -p ${BACKUPDIR}

cd ${MYSQLDBDIR}
for db in `find * -type d -exec basename {} \;`; do
    echo mysqldump ${db}
    mysqldump --all --complete-insert --extended-insert=FALSE --add-drop-table --databases --flush-logs --lock-tables --quick --comments=0 \
                             --user=root --password=${PW} --host=localhost ${db} > ${BACKUPDIR}/${db}.new.sql
    if [ -f ${BACKUPDIR}/${db}.sql ]; then
        # echo diff -q ${BACKUPDIR}/${db}.sql ${BACKUPDIR}/${db}.new.sql
        diff -q ${BACKUPDIR}/${db}.sql ${BACKUPDIR}/${db}.new.sql > /dev/null 2>&1
        result=$?
        if [ $result -eq 0 ]; then
            # echo rm ${BACKUPDIR}/${db}.new.sql
            rm ${BACKUPDIR}/${db}.new.sql
        elif [ $result -eq 1 ]; then
            echo mv ${BACKUPDIR}/${db}.new.sql ${BACKUPDIR}/${db}.sql
            mv ${BACKUPDIR}/${db}.new.sql ${BACKUPDIR}/${db}.sql
        fi
    else
        echo mv ${BACKUPDIR}/${db}.new.sql ${BACKUPDIR}/${db}.sql
        mv ${BACKUPDIR}/${db}.new.sql ${BACKUPDIR}/${db}.sql
    fi
done