mysql定时备份
需求:在每天23:30对当天的数据库进行备份。
建立定时任务
命令:crontab -e
29 23 * * * /usr/local/dba/mysql_backup.sh
编写数据库备份脚本
在每天23:30对当天的数据库进行全量备份,备份成功之后,删除上月的备份数据
#!/bin/bash
#保存备份个数,备份31天数据
number=31
#备份保存路径
backup_dir=/usr/local/dba/backup_dir
#日期
dd=`date +%Y-%m-%d-%H-%M-%S`
lastmonth=`date -d "$(date +%Y%m)01 last month" +%Y-%m`
#备份工具
tool=mysqldump
#用户名
username=root
#密码
password=****
#将要备份的数据库
database_name=wm
database_name_2=wm
#如果文件夹不存在则创建
if [ ! -d $backup_dir ];
then
mkdir -p $backup_dir;
fi
mysqldump -u wmDev -pshy wm > $backup_dir/mysql-backup-$database_name_2-$dd.sql
# 备份成功之后,删除上月备份数据
cd /usr/local/dba/backup_dir
rm -rf mysql-backup-$database_name_2-$(date -d "$(date +%Y%m)01 last month" +%Y-%m)*
#写创建备份日志
echo "create $backup_dir/$database_name-$dd.dupm and delete lastmonth backup data" >> $backup_dir/log.txt
备份当天数据并删除昨日备份
脚本如下:
#!/bin/bash
#保存备份个数,备份31天数据
number=31
#备份保存路径
backup_dir=/usr/local/dba/backup_dir
#日期
dd=`date +%Y-%m-%d-%H-%M-%S`
lastmonth=`date -d "$(date +%Y%m)01 last month" +%Y-%m`
#备份工具
tool=mysqldump
#用户名
username=root
#密码
password=****
#将要备份的数据库
database_name=wm
database_name_2=wm
#如果文件夹不存在则创建
if [ ! -d $backup_dir ];
then
mkdir -p $backup_dir;
fi
mysqldump -u wmDev -pshy wm > $backup_dir/mysql-backup-$database_name_2-$dd.sql
# 备份成功之后,删除昨日备份数据
cd /usr/local/dba/backup_dir
rm -rf mysql-backup-$database_name_2-$(date -d "yesterday" +%Y-%m-%d)*
#写创建备份日志
echo "create $backup_dir/$database_name-$dd.dupm and delete lastmonth backup data" >> $backup_dir/log.txt
网友评论