linux数据库自动备份函数应封装为参数化、可复用的shell函数,接收库名等参数,调用mysqldump并校验状态,通过~/.my.cnf认证,生成时间戳文件,配置外置,支持单/批量调用及统一日志反馈。

在Linux中封装数据库自动备份执行函数,核心是把重复操作抽象成可复用、易维护的Shell函数,而不是每次写一整段脚本。重点在于分离配置、逻辑与执行,让备份动作变成“调用即生效”的行为。
定义清晰的备份函数主体
函数应专注“执行一次备份”这件事,不包含定时调度或目录创建等外围逻辑。例如:
- 接收数据库名、输出路径、压缩开关等参数,而非硬编码
- 内部统一调用mysqldump并检查退出状态,失败时返回非0值
- 默认使用~/.my.cnf读取账号密码,避免明文暴露
- 生成带时间戳的文件名,如prod_db_20260916_0424.sql.gz
把配置与函数解耦
不要把用户名、密码、路径写死在函数里。推荐方式:
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
- 在脚本开头用变量声明配置项(如BACKUP_DIR="/backup/db"),函数只读取这些变量
- 或通过source ./config.conf加载外部配置文件,便于多环境切换
- 敏感信息(如密码)始终走~/.my.cnf,权限设为600
支持单库/多库批量调用
函数设计要兼顾灵活性:
- 单次调用:backup_db "wordpress"
- 批量调用:for db in ${DB_LIST[@]}; do backup_db "$db"; done
- 函数内不做循环,由调用方控制节奏,方便加日志、限速或条件跳过
集成日志与错误处理
函数末尾应有统一反馈机制:
- 成功时输出[OK] backup wordpress → /backup/db/wordpress_20260916.sql.gz
- 失败时记录错误到日志,并return 1,便于上层判断是否继续
- 日志路径也作为变量传入,比如LOG_FILE="/var/log/db-backup.log"










