使用Shell脚本备份MyQL并忽略某个表

使用Shell脚本可以方便地备份MyQL数据库,如果某个表过大,可以忽略它。

以下为示例脚本:

#!/bin/bash

# MySQL数据库信息
DB_USER="root"
DB_PASSWORD="your_password"
DB_NAME="your_database"

# 忽略备份的表
IGNORE_TABLE="your_table"

# 备份文件存放目录
BACKUP_DIR="/path/to/backup/directory"

# 备份文件名
BACKUP_FILE="${BACKUP_DIR}/${DB_NAME}_$(date +%Y-%m-%d_%H%M%S).sql"

# 执行备份命令,忽略指定表
mysqldump -u${DB_USER} -p${DB_PASSWORD} --single-transaction --skip-lock-tables --ignore-table=${DB_NAME}.${IGNORE_TABLE} ${DB_NAME} > ${BACKUP_FILE}

解释一下:

  • 首先,定义了数据库的用户名、密码、数据库名和备份文件存放目录等信息。
  • 然后,定义了要忽略备份的表名。
  • 接着,定义了备份文件的文件名,格式为数据库名_日期时间.sql,使用date命令来获取当前的日期时间。
  • 最后,执行备份命令mysqldump,使用--ignore-table选项来忽略指定的表,将备份内容输出到指定的文件中。

将以上脚本保存为一个文件,例如backup.sh,并使用chmod +x backup.sh命令将其设为可执行权限。然后,只需在终端中执行该文件即可进行备份。如果需要定时执行备份,可以使用crontab设置定时任务。

Leave a Comment

豫ICP备19001387号-1