Linux Spool数据备份方法
一 常见备份对象与取舍
crontab -l 导出配置)、以及大量瞬时临时文件的子目录(如某些缓存/临时 spool 子目录),以免备份体积过大且恢复价值有限。二 常用备份方法
sudo tar -czvf spool_backup_$(date +%F_%H%M%S).tar.gz /var/spoolsudo tar -czvf mail_spool_$(date +%F_%H%M%S).tar.gz /var/spool/mailsudo tar -czvf postfix_spool_$(date +%F_%H%M%S).tar.gz /var/spool/postfixsudo tar -czvf cups_spool_$(date +%F_%H%M%S).tar.gz /var/spool/cups-c 创建归档,-z 使用 gzip 压缩,-v 显示过程,-f 指定文件名。sudo rsync -aAX --delete /var/spool/ /backup/spool_backup/(保持权限、ACL、扩展属性;--delete 让目标与源一致)sudo rsync -aAX --delete /var/spool/mail/ /backup/mail_spool/-aAX 适合保留系统关键元数据;目标路径末尾的斜杠 / 表示同步目录内容而非目录本身。sudo dump -0u -f /backup/spool_$(date +%F).dump /var/spoolsudo restore -rf /backup/spool_YYYY-MM-DD.dump-0u 表示 0 级(全量)并更新备份时间戳,适合整文件系统或挂载点的离线/一致性备份。三 自动化与异地存放
/usr/local/bin/backup_mail_spool.sh#!/usr/bin/env bash
set -Eeuo pipefail
BACKUP_DIR="/backup/spool_mail"
SRC="/var/spool/mail"
DATE=$(date +%F_%H%M%S)
mkdir -p "$BACKUP_DIR"
tar czvf "$BACKUP_DIR/mail_spool_$DATE.tar.gz" -C "$SRC" .
find "$BACKUP_DIR" -name "mail_spool_*.tar.gz" -mtime +7 -delete
0 2 * * * /usr/local/bin/backup_mail_spool.shscp /backup/spool_mail/mail_spool_*.tar.gz user@remote:/backup/rsync -avz --delete /backup/spool_mail/ user@remote:/backup/spool_mail/四 恢复与验证
sudo tar -xzvf spool_backup_YYYY-MM-DD_HHMMSS.tar.gz -C /sudo tar -xzvf mail_spool_YYYY-MM-DD_HHMMSS.tar.gz -C /sudo rsync -aAX --delete /backup/spool_backup/ /var/spool/sudo restore -rf /backup/spool_YYYY-MM-DD.dump(按需选择恢复项)sudo chown -R postfix:postfix /var/spool/postfixsudo chown -R root:lp /var/spool/cupstar tvf 备份文件.tar.gz | wc -ltar tvf 备份文件.tar.gz | grep 关键文件五 注意事项与最佳实践
tar -aAX 或 rsync -aAX 保留权限、属主、ACL、扩展属性;对数据库/队列类数据,尽量在一致性窗口内执行。