精选圈子榜单优站
编程综合
编程综合
技术
20关注
编程技术记录、分享 ,记录你的编程生活点点滴滴!

MySQL 自动备份 Shell 脚本


#!/bin/bash

# 要备份的数据库名,多个数据库用空格分开
databases=(db_friend) 

# 备份文件要保存的目录
basepath='/home/nemo/mysqlbackup/sql/'

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

# 循环databases数组
for db in ${databases[*]}
  do
    # 备份数据库生成SQL文件
    mysqldump -uUSER -pPASSWORD --database $db > $basepath$db-$(date +%Y%m%d).sql
    
    # 将生成的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

保存脚本为mysqlbackup.sh,然后给脚本添加可执行权限:

$ chmod a+x mysqlbackup.sh

编辑系统定时任务:

$  crontab -e 

添加配置,设置为凌晨 3 点执行:

0 3 * * * /home/nemo/mysqlbackup/sh/mysqlbackup.sh

保存退出即可。

最后验证下定时任务是否已开启:

crontab -l

  • 若文章侵犯了您的权益,请联系我们进行处理。

  • 2017-06-15
  • 4326阅读
评论