Shell脚本自动备份数据库

#!/bin/bash
# This script is used backup mysql databases
# Date:20180630
# Author:Linus

# 不使用变量的数据库备份命令  mysqldump -uroot -ppass123 -h192.168.199.160 --databases bbs > /data/backup/mysql/bbs.mysql
# 其中 --databases 后面接的是数据库名,即需要备份的数据库名称

# 1、定义数据库链接、目标库信息
MY_USER="root"              # 数据库的用户名,不是linux系统的用户名
MY_PASS="pass123"           # 数据库的密码
MY_HOST="192.168.199.160"   # 数据库的ip地址
MY_CONN="-u${MY_USER} -p${MY_PASS} -h${MY_HOST}"
MY_DB1="bbs"
MY_DB2="aliyun"

# 2、定义备份目录、工具、时间 、文件名主体
mkdir -p /data/backup/mysql
BK_DIR="/data/backup/mysql/"
BK_CMD=`which mysqldump`
BK_TIME=`date +%Y%m%d-%H%M`
FILE_NAME_1="${MY_DB1}-${BK_TIME}"
FILE_NAME_2="${MY_DB2}-${BK_TIME}"

# 3、先导出为.sql文件,然后再压缩(完成后删除原文件)
cd ${BK_DIR}
${BK_CMD} ${MY_CONN} --databases ${MY_DB1} > ${FILE_NAME_1}.sql
${BK_CMD} ${MY_CONN} --databases ${MY_DB2} > ${FILE_NAME_2}.sql
`which tar` zcf ${FILE_NAME_1}.tar.gz ${FILE_NAME_1}.sql --remove &> /dev/null
`which tar` zcf ${FILE_NAME_2}.tar.gz ${FILE_NAME_2}.sql --remove &> /dev/null

猜你喜欢

转载自www.cnblogs.com/relax1949/p/9247661.html