Here are some lines I’m using to backup my MySQL databases on my Debian server:
#!/bin/sh
# This will dump all your databases
DATE=$(date +%Y%m%d%H%M)
for DB in $(echo "show databases" | mysql --defaults-file=/etc/mysql/debian.cnf -N)
do
mysqldump --defaults-file=/etc/mysql/debian.cnf $DB > /backup/mysql/${DB}_${DATE}.sql
gzip /backup/mysql/${DB}_${DATE}.sql
done
# purge old dumps
find /backup/mysql/ -name "*.sql*" -mtime +8 -exec rm -vf {} \;
You can run it in a cron:
11 1 * * * /usr/local/bin/mysqldump.sh > /tmp/mysqldump.log
This way any error displayed by the script will be sent by mail to the root user (mail address in /etc/aliases).
If you are not under Debian and there is no password file in /etc/mysql, you should create such file.


