mysql数据库定期自备份

shell脚本内容如下所示:

通过shellll脚本实现自动定期备份数据库:

#!/bin/bash

# 备份hs_king数据库

# 设置MySQL连接信息

MYSQL_USER="root"

MYSQL_PASSWORD="123456"

MYSQL_DATABASE="hs_king"

# 设置备份文件的名称和路径

BACKUP_PATH="/root/SQL/mysql-file/"

BACKUP_FILENAME="$(date +%Y.%m.%d.%H.%M)-${MYSQL_DATABASE}.sql" BACKUP_FILE="$BACKUP_PATH$BACKUP_FILENAME"

# 导出MySQL数据库

mysqldump -R -u$MYSQL_USER -p$MYSQL_PASSWORD $MYSQL_DATABASE > $BACKUP_FILE # 删除过期的备份文件 : 近15天

find $BACKUP_PATH -type f -name "*-${MYSQL_DATABASE}.sql" -mtime +15 -exec rm {} \;

# 以文件的创建时间为准进行删除 

脚本授权

chmod +x backup_mysql.sh

crontab添加定时任务

crontab -e

*/10 * * * * /root/SQL/backup_mysql.sh

校验备份的数据库

解释说明

这段Shell脚本用于备份MySQL数据库。下面是对脚本的详细说明:

  1. 第2行到第6行:设置了连接MySQL的信息。你可以根据实际情况修改变量的值。

    • MYSQL_USER:MySQL用户名,这里设置为"root"。
    • MYSQL_PASSWORD:MySQL密码,这里设置为"123456",请根据实际情况修改。
    • MYSQL_DATABASE:要备份的数据库名称,这里设置为"hs_king"。
  2. 第9行和第10行:设置备份文件的名称和路径。

    • BACKUP_PATH:备份文件的存储路径,这里设置为"/root/SQL/mysql-file/",请确保该目录存在并有写权限。
    • BACKUP_FILENAME:备份文件的名称,采用当前日期(年月日时分)加上数据库名的形式。
  3. 第13行:使用mysqldump命令导出MySQL数据库。

    • -R参数用于导出存储过程和触发器。
    • -u$MYSQL_USER -p$MYSQL_PASSWORD指定了连接MySQL的用户名和密码。
    • $MYSQL_DATABASE指定了要备份的数据库。
    • > $BACKUP_FILE将导出的数据输出到备份文件中。
  4. 第16行:删除过期的备份文件。

    • find $BACKUP_PATH指定要查找的路径。
    • -type f表示只查找文件。
    • -name "*-${MYSQL_DATABASE}.sql"指定了要匹配的备份文件名模式,其中"*"表示任意字符。
    • -mtime +15表示只选择修改时间超过15天的文件。
    • -exec rm {} \;将匹配到的文件执行删除操作。

这段脚本的作用是将指定的MySQL数据库进行备份,并保留近15天的备份文件,旧于15天的备份文件将被自动删除。请确保在运行此脚本之前,已经创建好了存储备份文件的目录,并且该目录具有适当的写权限。另外,也请根据实际情况修改脚本中的MySQL连接信息和备份文件路径以适应你的环境。

猜你喜欢

转载自blog.csdn.net/qq_52497256/article/details/131538986
今日推荐