数据备份与rsync实战:增量同步、远程备份、3-2-1策略

352 字
2 分钟
数据备份与rsync实战:增量同步、远程备份、3-2-1策略

生信数据备份遵循 3-2-1 原则

  • 3 份副本(原始+2份备份)
  • 2 种介质(本地硬盘+远程)
  • 1 份异地(不同物理位置)

1. rsync——增量同步利器#

Terminal window
# 基础同步(本地→远程)
rsync -avzP /opt/bioinfo/results/ user@192.168.1.100:/backup/results/
# 参数说明:
# -a: 归档模式(保留权限、时间戳)
# -v: 详细输出
# -z: 传输时压缩
# -P: --partial --progress(断点续传+显示进度)
# --delete: 删除目标端多余文件(慎用!)

2. 完整备份脚本#

#!/bin/bash
set -euo pipefail
BACKUP_SRC="/opt/bioinfo"
BACKUP_DST="/mnt/backup/bioinfo_$(date +%Y%m%d)"
REMOTE="user@nas-server:/backup/"
LOG="/var/log/backup.log"
log() { echo "[$(date)] $*" | tee -a "$LOG"; }
log "=== Backup started ==="
# 本地完整备份(硬链接节省空间)
rsync -avzP --link-dest=/mnt/backup/bioinfo_latest \
"$BACKUP_SRC/" "$BACKUP_DST/" >> "$LOG" 2>&1
# 更新latest链接
rm -f /mnt/backup/bioinfo_latest
ln -s "$BACKUP_DST" /mnt/backup/bioinfo_latest
# 远程同步(仅同步变化)
rsync -avzP --delete "$BACKUP_SRC/" "$REMOTE" >> "$LOG" 2>&1
log "=== Backup completed ==="

3. tar打包压缩#

Terminal window
# 打包+压缩(多线程)
tar -I pigz -cf project_backup_$(date +%Y%m%d).tar.gz /opt/bioinfo/project/
# 排除某些目录
tar -czf backup.tar.gz \
--exclude='tmp' \
--exclude='*.fastq' \
/opt/bioinfo/

4. crontab定时备份#

Terminal window
# 每天凌晨2点执行
0 2 * * * /opt/scripts/backup.sh
# 每周日凌晨3点清理旧备份(保留最近4周)
0 3 * * 0 find /mnt/backup/ -name "bioinfo_*" -mtime +28 -exec rm -rf {} \;

5. 踩坑#

  • rsync —delete先干跑:加--dry-run看看会删什么
  • 备份要验证:定期 rsync -avnc对比源和目标是否一致
  • 别把备份和原始放同一块硬盘:硬盘坏了全没了

本文于 2025-09-15 实测。

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

数据备份与rsync实战:增量同步、远程备份、3-2-1策略
https://fg.ink/posts/bioinfo-data-backup-rsync/
作者
风观
发布于
2024-11-15
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
风观
风有来路,观有所思
分类
标签
站点统计
文章
50
分类
1
标签
29
总字数
61,837
运行时长
0
最后活动
0 天前

文章目录