mysql 单独备份一个数据库

写一个数据库备份脚本,备份employees数据库,并且自动删除20天前的数据库备份.

employees.sh

#!/bin/bash
#guoyafei 2014-01-18
#backup employees  delete databasesbackup before 20

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:~/bin

#数据库用户名
user="root"
#数据库密码
passwd="aaa12345"
#备份文件存放目录
backupdir="/data/backup/"
#备份数据库名
dbname="employees"
#当前时间
date=$(date +%Y%m%d%H%M%S)
#备份出来的文件名
backfile=$dbname'_'$date.sql

#压缩后的文件名
tarfile=$backfile.tar.bz2
outtime=20
#判断备份目录是否存在
if [ ! -d $backupdir ];then
mkdir -p $backupdir
fi
#备份并压缩
mysqldump -u$user -p$passwd --single-transaction --routines --master-data=2 --triggers --events --flush-logs --databases $dbname > $backupdir$backfile && tar -jcvf $tarfile $backupdir$backfile
#删除备份文件
rm -f $backupdir$backfile
#删除过期文件

#find $backupdir -name *.tar.bz2 -mtime +$outtime |xargs rm -rf
find $backupdir -name *.tar.bz2 -mtime +$outtime -exec rm -f {} \;
###自动每天备份
[root@gyf backup]# crontab -e

01 12 * * * sh /data/backup/employees.sh

重启生效
[root@gyf backup]# /etc/init.d/crond restart

你可能感兴趣的:(备份数据库)