这是我写的一个自动备份mysql的 脚本, 能备份所有mysql 中的所有数据库。
#!/bin/bash
umask 177
muser=userid
mpass=password
mhost=localhost
mysql=$(which mysql)
mysqldump=$(which mysqldump)
params=--hex-blob --skip-extended-insert --password=$mpass
date=$(date +%f)
backupdir=/home/${muser}/backup/$date/
rmdate=$(date -d 1 week ago +%f)
rmdir=/home/${muser}/backup/$rmdate
backuplog=/home/${muser}/backup/backup.log
if [ ! -f $backuplog ] ; then
touch $backuplog
chmod 600 $backuplog
fi
if [ -d $rmdir ]; then
rm -rf $rmdir
echo backup deleted from $rmdate >> $backuplog
fi
if [ ! -d $backupdir ]; then
mkdir -m 700 -p $backupdir
fi
echo backup beginning $date >> $backuplog
dbs=$($mysql -h $mhost -u $muser -p$mpass -bse 'show databases')
for db in $dbs
do
$mysqldump $params $db > $backupdir$db.sql && bzip2 --best $backupdir$db.sql
done
echo backup completed $date >> $backuplog
另外可以结合cronjob定时备份
作者 eimhee
bitscn.com