每天进行mysql逻辑全备份的脚本

windows版

利用mysqldump工具进行逻辑备份,写成脚本,添加到windows计划任务。
脚本如下:

rem ---move old bakupfile to tmp folder /y means no prompt ---
if not exist "D:\bak\tmp" md "D:\bak\tmp"
move /y d:\bak\mysqlbak D:\bak\tmp
rem ----------------------------------------------------------
rem ---use mysqldump dump database to sql---
c:
cd "C:\Program Files\MySQL\MySQL Server 5.7\bin"
mysqldump -uusername -ppassword databasename > d:\bak\mysqlbak\%date:~0,4%%date:~5,2%%date:~8,2%.sql
rem ---del old backupfile in D:\bak\tmp
rd /s /q D:\bak\tmp\

添加计划任务,选择基本任务。注意配置“起始于”选项,设置为脚本所在目录。

Linux版,转自网络

#!/bin/sh
###每天运行一次

###定义用户 密码 备份目录等信息
user=mysqldump
psd=mysqldump
backup_base=/data/mysql_backup
date=`date +%Y%m%d`
old_date=`date +%Y%m%d -d -30days`    ###保存的天数

###获取库名,排除不需要备份的库
for db in `mysql -u$user -p$psd -s -N -e "show databases"|grep -v -E "(test|percona|information_schema|performance_schema)"`
do
  ###创建备份目录
  if [ ! -d $backup_base/$db ];then
    mkdir $backup_base/$db
  fi

  cd $backup_base/$db
  chattr -i ./*    
  rm -f $old_date.sql* &>/dev/null     #删除30天以前的

  mysqldump -u$user -p$psd --events --routines  $db |gzip > $date.sql.gz    ###备份&压缩

  chattr +i ./*    ###这里加了个防误删的属性
done

你可能感兴趣的:(每天进行mysql逻辑全备份的脚本)