Nemo

Nemo 关注TA

路漫漫其修远兮,吾将上下而求索。

Nemo

Nemo

关注TA

路漫漫其修远兮,吾将上下而求索。

  • 加入社区3,280天
  • 写了1,496,113字

该文章投稿至Nemo社区   Linux  板块 复制链接


MySQL 自动备份 Shell 脚本

发布于 2017/06/15 18:44 4,009浏览 2回复 775

#!/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
本文标签
 {{tag}}
点了个评