mysqldump配合shell脚本是最常用可靠的mysql批量备份方式,核心是获取数据库列表、循环导出并按时间/库名组织文件。

用 mysqldump 配合 Shell 脚本,是最常用、最可靠的 MySQL 批量备份方式。核心思路是:获取数据库列表 → 循环执行导出 → 按时间/库名组织文件。
一、列出所有需备份的数据库
先确认要备份哪些库。可手动指定,也可动态获取(排除系统库):
- 手动指定:
DBS="db1 db2 db3" - 自动获取(推荐):
DBS=$(mysql -N -s -e "SHOW DATABASES" | grep -Ev "^(information_schema|performance_schema|mysql|sys)$")
二、编写批量备份脚本
保存为 backup_mysql.sh,赋予执行权限(chmod +x backup_mysql.sh):
#!/bin/bash
BACKUP_DIR="/data/backup/mysql/$(date +%Y%m%d)"
USER="root"
PASS="your_password"
HOST="localhost"
<p>mkdir -p "$BACKUP_DIR"</p><div class="aritcle_card flexRow">
<div class="artcardd flexRow">
<a class="aritcle_card_img" href="/xiazai/code/10280" title="NetGou网店购物系统"><img
src="https://img.php.cn/upload/webcode/000/000/002/176130000630947.jpg" alt="NetGou网店购物系统" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a>
<div class="aritcle_card_info flexColumn">
<a href="/xiazai/code/10280" title="NetGou网店购物系统">NetGou网店购物系统</a>
<p>NetGou是一款国内知名的购物系统网店系统,它功能强大完善、运行稳定快速、界面友好人性化、可扩展性强。系统支持无限级商品分类管理、商品品牌管理、商品供货商管理、商品可同时加入多个商品分类商品批发价格,购买不同的商品数量可以设置不同的价格。不同的商品选项可以设置不同的价格订单中可以加入商品、删除商品、更改商品数量和价格、更改配送方式和配送费用新闻管理、销售统计、数据备份恢复,不同的会员等级可以设置</p>
</div>
<a href="/xiazai/code/10280" title="NetGou网店购物系统" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span> </a>
</div>
</div><p>for DB in $DBS; do
echo "正在备份 $DB..."
mysqldump -h"$HOST" -u"$USER" -p"$PASS" --single-transaction --routines --triggers "$DB" > "$BACKUP<em>DIR/${DB}</em>$(date +%Y%m%d_%H%M%S).sql"
done</p><p>echo "备份完成,目录:$BACKUP_DIR"
说明:
--single-transaction 保证 InnoDB 数据一致性;
--routines 和 --triggers 分别导出存储过程和触发器;
文件名含时间戳,避免覆盖。
三、添加自动压缩与清理(可选但实用)
备份后压缩节省空间,定期清理旧备份防磁盘占满:
- 压缩:在循环结束后加一行
gzip "$BACKUP_DIR"/*.sql - 清理7天前备份:
find /data/backup/mysql/ -type d -mtime +7 -exec rm -rf {} \;
四、加入定时任务(每天凌晨2点执行)
运行 crontab -e,添加:
0 2 * * * /path/to/backup_mysql.sh >> /var/log/mysql_backup.log 2>&1
日志记录便于排查问题,注意路径写绝对路径。
不复杂但容易忽略:确保 MySQL 用户有对应库的 SELECT 权限;密码若含特殊字符,建议改用配置文件方式(~/.my.cnf)避免命令行泄露。









