8. Linux环境MySQL自动备份

http://88250.b3log.org/backup-mysql-shell

#!/bin/bash

# the backup dbs
databases=(imove manage imanage) 

#the mysql bin path
mysqlbin='/usr/local/mysql/bin'

#the backup file directory
basepath='/usr/local/mysqldump/'

# Database info
DB_USER="root"
DB_PASS="123456"
DB_HOST="localhost"

if [ ! -d "$basepath" ]; then
  mkdir -p "$basepath"
fi

# 循环databases数组
for db in ${databases[*]}
  do
    # 备份数据库生成SQL文件
    #/bin/nice -n 19 /usr/local/mysql/bin/mysqldump -uroot -p123456 --database $db > $basepath$db-$(date +%Y%m%d).sql
    cd $mysqlbin
    ./mysqldump --opt -u$DB_USER -p$DB_PASS -h$DB_HOST $db > $basepath$db-$(date +%Y%m%d).sql
    
    # 将生成的SQL文件压缩
    #/bin/nice -n 19 tar zPcf $basepath$db-$(date +%Y%m%d).sql.tar.gz $basepath$db-$(date +%Y%m%d).sql
    tar zPcf $basepath$db-$(date +%Y%m%d).sql.tar.gz $basepath$db-$(date +%Y%m%d).sql
    
    # 删除7天之前的备份数据
    find $basepath -mtime +7 -name '*.sql.tar.gz' -exec rm -rf {} \;
  done

  # 删除生成的SQL文件
  rm -rf $basepath/*.sql
执行:
crontab -e

在打开的文件中输入下面命令:
22点 42 分 开始执行备份shell脚本

42 22 * * * /usr/local/mysqldump/mysqldump.sh

 

chmod  +x   mysqldump.sh
赋予执行权限

 

posted @ 2017-06-08 23:30  xu_shuyi  阅读(155)  评论(0编辑  收藏  举报