mysqlロジックのフルバックアップを毎日行うスクリプト

1363 ワード

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\

計画タスクを追加し、基本タスクを選択します.注:スクリプトが存在するディレクトリに設定されている[開始](Start)オプションを設定します.
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