2023-03-09 MYSQL自动备份SHELL

#!/bin/bash

# Filename:    backup_mysql.sh

# Version:    1.0

# Date:        2023/03/09

# Author:      xiajinbiao

# Email:

# Description: MYSQL用户数据库的备份

# Notes:      将脚本加入crontab中,每天2点定时执行

# 你的 MySQL 地址

#MYSQL_HOST="127.0.0.1"

# 你的 MySQL 端口号

MYSQL_PORT="3306"

# 你的 MySQL 用户名

MYSQL_USER="root"

# 你的 MySQL 密码

MYSQL_PASSWORD="mysql8028,!"

# 备份路径

BACKUP=/data/backup_mysql

# 当前时间

DATETIME=$(date +%Y%m%d%H%M%S)

# 自动获得所有的数据库

# mysql文件的全路径

DATABASES=`/application/mysql8028/bin/mysql -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} -e "SHOW DATABASES;"`

# 创建备份目录

mkdir -p "${BACKUP}/$DATETIME"

for db in $DATABASES; do

    # 排除表头和一些无需备份的数据库

    if [[ "$db" != "Database" ]] && [[ "$db" != "information_schema" ]] && [[ "$db" != "performance_schema" ]] && [[ "$db" != "mysql" ]] ; then

        echo "正在备份数据库: $db"

        # 备份操作

        # mysqldump的全路径

        /application/mysql8028/bin/mysqldump -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} --databases $db > ${BACKUP}/$DATETIME/$db.sql

        echo "数据库【$db】已成功备份到:${BACKUP}/$DATETIME/$db.sql 下"

    fi

done

# 删除7天前的文件

find $BACKUP -type f -mtime +7 -exec rm -f {} \;

echo "备份成功结束~"

echo "================================================"

00 1 * * *  /bin/bash /data/backup_mysql/backup_mysql.sh  >> /data/backup_mysql/backup_mysql.log

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容