linux下进行定时mysql数据库全量备份

2020-07-06  本文已影响0人  大风过岗

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
上一篇 下一篇

猜你喜欢

热点阅读