2019-11-26 21:13:05 +08:00
|
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
|
2020-04-03 15:15:02 +08:00
|
|
|
|
# -----------------------------------------------------------------------------------------------------
|
|
|
|
|
# Mysql 备份脚本
|
|
|
|
|
# 可以通过 crond 服务,设置称为定时执行脚本:
|
|
|
|
|
# (1)执行 crontab -e 编辑定时执行任务,如:59 23 * * * /home/scripts/mysql-backup.sh
|
|
|
|
|
# (2)vi /etc/crontab,编辑 crontab 文件后保存,可以通过 crontab -l 查看
|
|
|
|
|
# @author Zhang Peng
|
|
|
|
|
# -----------------------------------------------------------------------------------------------------
|
2019-11-26 21:13:05 +08:00
|
|
|
|
|
2020-04-03 15:15:02 +08:00
|
|
|
|
# ------------------------------------------------------------------------------ env
|
|
|
|
|
# Mysql Host
|
|
|
|
|
export ENV_MYSQL_HOST="127.0.0.1"
|
|
|
|
|
# Mysql 端口
|
|
|
|
|
export ENV_MYSQL_PORT=3306
|
|
|
|
|
# Mysql 用户名
|
|
|
|
|
export ENV_MYSQL_USERNAME=root
|
|
|
|
|
# Mysql 密码
|
|
|
|
|
export ENV_MYSQL_PASSWORD=root
|
|
|
|
|
# Mysql 备份文件最大数量
|
|
|
|
|
export ENV_BACKUP_MAX_NUM=7
|
|
|
|
|
# 备份模式:备份所有数据库(--all-databases)|备份指定数据库列表
|
|
|
|
|
export ENV_MYSQL_DATABASES=--all-databases
|
|
|
|
|
# 备份路径
|
|
|
|
|
export ENV_MYSQL_BACKUP_DIR=/var/lib/mysql/backup
|
|
|
|
|
# 备份日志路径
|
|
|
|
|
export ENV_LOG_PATH="${ENV_MYSQL_BACKUP_DIR}/mysql-backup.log"
|
2019-11-26 21:13:05 +08:00
|
|
|
|
|
2020-04-03 15:15:02 +08:00
|
|
|
|
# ------------------------------------------------------------------------------ libs
|
|
|
|
|
LINUX_SCRIPTS_LIB_DIR=`dirname ${BASH_SOURCE[0]}`
|
|
|
|
|
if [[ ! -x ${LINUX_SCRIPTS_LIB_DIR}/lib/mysql.sh ]]; then
|
|
|
|
|
echo "${LINUX_SCRIPTS_LIB_DIR}/lib/mysql.sh not exists!"
|
|
|
|
|
exit 1
|
2019-11-26 21:13:05 +08:00
|
|
|
|
fi
|
2020-04-03 15:15:02 +08:00
|
|
|
|
source ${LINUX_SCRIPTS_LIB_DIR}/lib/mysql.sh
|
|
|
|
|
|
|
|
|
|
# ------------------------------------------------------------------------------ main
|
|
|
|
|
# 执行备份方法
|
|
|
|
|
backupMysql
|