MySQL Backup Script
From wikidb
#!/bin/bash # Number of days to keep backups DAYS=7 # List of databases to back up DBS=(crowlivia wikidb gallery) # Who to email when it fails EMAIL=epp@zdome.net EMAILFROM=noreply@localhost # Perform the backup... DATE=$(date -u '+%Y%m%dT%H%M') BACKUPDIR=~/dbbackup/dbbackups/ TEMP=$BACKUPDIR/tmp.sql.gz for DB in ${DBS[@]} do DBDIR=$BACKUPDIR/$DB if [[ ! -d $DBDIR ]] then mkdir $DBDIR fi # You'll notice that the password is not specified here. # The password for the MySQL root account is specified # in ~/.my.cnf. # This way, it won't show up when other users run "ps". mysqldump -u root $DB | gzip > $TEMP if [[ "$?" -ne 0 ]] then echo "Backup of database $DB failed." mailx -s "MySQL backup failure" "$EMAIL" -S from="$EMAILFROM" <<EOF MySQL backup failed. Database: $DB Time: $DATE (UTC) EOF rm $TEMP else # Delete old backups, but only if we succeeded at creating # a new one. find $DBDIR -mtime +$DAYS -delete mv $TEMP $DBDIR/$DB-$DATE.sql.gz fi done