最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
ubuntu触发器怎样备份
时间:2026-06-29 09:42:54 编辑:袖梨 来源:一聚教程网
Ubuntu 备份触发器的实现与数据库触发器备份

一、概念澄清
- 在 Ubuntu 中,“触发器”通常指两类:
- 文件系统事件触发器:当目录或文件发生创建、修改、删除时,自动执行备份或同步(如用 inotifywait + rsync 实时触发)。
- 数据库触发器 Trigger:存储在数据库中的对象,随表事件自动执行。备份它需要在导出数据时包含触发器定义(如 mysqldump 的 –triggers 选项)。
二、文件系统事件触发备份(实时)
- 适用场景:目录内容频繁变化,需要“文件一变就备份/同步”。
- 思路:用 inotifywait 监听目录事件,触发 rsync 增量同步到备份目录或远端。
- 快速步骤:
- 安装工具sudo apt update && sudo apt install -y inotify-tools rsync
- 创建触发同步脚本 sync_data.sh#!/bin/bashSOURCE_DIR=“/path/to/source”TARGET_DIR=“/path/to/backup”inotifywait -m -r -e create,delete,modify --format ‘%w%f’ “$SOURCE_DIR” | while read FILE; dorsync -avz --delete “$SOURCE_DIR/” “$TARGET_DIR/”done
- 赋权并后台运行chmod +x sync_data.shnohup ./sync_data.sh &
- 说明:
- 该方式“实时”响应事件,适合对变更敏感的数据;如需更稳健,可结合 systemd 服务或 screen/tmux 守护进程运行。
三、定时触发备份(按计划)
- 适用场景:对实时性要求不高,按天/小时稳定执行备份。
- 思路:用 cron 定时执行 tar 或 rsync 命令,形成固定频率的备份任务。
- 快速步骤:
- 编辑当前用户的定时任务crontab -e
- 添加计划任务(示例)
每天 02:00 用 tar 打包备份
0 2 * * * tar -czvf /backup/backup_$(date +%F).tar.gz /path/to/source每 6 小时用 rsync 增量同步
0 */6 * * * rsync -av --delete /path/to/source/ /path/to/backup/ - 如需更复杂逻辑,可将命令写入脚本再交由 cron 执行。
- 说明:
- tar 适合归档与压缩;rsync 适合目录间增量同步与镜像。两者均可与 cron 组合实现稳定、可审计的定时备份。
四、数据库触发器的备份(MySQL/MariaDB)
- 适用场景:需要把业务表上的 触发器 随数据一起备份与恢复。
- 思路:使用 mysqldump 导出时显式包含触发器定义,并在恢复时一并导入。
- 快速步骤:
- 准备备份专用账号并授予权限(避免在主库日常账号上直接操作)CREATE USER ‘backup_user’@‘%’ IDENTIFIED BY ‘StrongPass!’;GRANT SELECT, SHOW VIEW, TRIGGER, LOCK TABLES, PROCESS ON . TO ‘backup_user’@‘%’;– 若库中有事件调度器,按需授予:GRANT EVENT ON your_db.* TO ‘backup_user’@‘%’;FLUSH PRIVILEGES;
- 推荐将凭据写入受控配置文件(权限设为 600)sudo mkdir -p /etc/mysql/conf.dcat >/etc/mysql/conf.d/backup.cnf <<‘EOF’[client]user=backup_userpassword=StrongPass!host=127.0.0.1EOFsudo chmod 600 /etc/mysql/conf.d/backup.cnf
- 执行导出(包含触发器;可按需添加 --routines --events)mysqldump --defaults-file=/etc/mysql/conf.d/backup.cnf –single-transaction --routines --triggers --events -u backup_user your_db > /backup/your_db_$(date +%F).sql
- 恢复时直接导入即可,触发器定义会随表一起恢复mysql -u backup_user -p your_db < /backup/your_db_*.sql
- 说明:
- 使用专用备份账号与配置文件,既安全又便于自动化;–triggers 是关键选项,确保触发器被导出。
五、实用建议
- 保留多份历史与校验:在脚本中加入按日期命名、保留天数、校验(如 sha256sum)与清理旧备份的逻辑。
- 远程与离线双保险:本地定时备份 + 远端实时/定时同步;关键备份再做离线或云端副本。
- 监控与告警:记录日志,配合简单监控(如日志关键字告警或 systemd 状态检查),确保任务持续可用。