Ubuntu下如何安全可靠的复制大规模数据

在 Ubuntu 下复制约 1T 的大文件或大量数据时,推荐使用以下几种工具,它们在 数据完整性、稳定性和容错性 方面比普通的 cp 更安全、更可靠。


✅ 推荐优先级排序(安全 & 实用性)

工具 特点说明
rsync 最推荐,支持断点续传、校验、进度显示
cp -av 简单易用,支持保留权限,但遇错会中断
rsync + screen/tmux 最稳健,用于后台执行长时间任务
dd 多用于裸设备复制(如整个磁盘),非首选文件拷贝工具

✅ 推荐使用 rsync 命令

🟢 方式一:复制整个目录并显示进度

rsync -avh --progress /source/path/ /destination/path/
  • -a:归档模式,保留权限、符号链接、时间戳等
  • -v:显示详细信息
  • -h:人类可读大小
  • --progress:显示每个文件的复制进度

🟢 方式二:断点续传(失败可继续)

rsync -avh --partial --progress /source/path/ /destination/path/
  • --partial:保留中断的文件,下次可以续传

🛡️ 使用 screen/tmux 后台执行(可选)

复制 1T 数据可能持续几小时甚至更久,建议使用 screentmux

sudo apt install screen
screen -S rsync_copy
rsync -avh --partial --progress /source/ /dest/
# 复制中断时可恢复,退出 screen 用 Ctrl+A 然后按 D

❌ 不推荐使用 cp 的情况:

虽然 cp -av 也能用,但:

  • 复制中途出错时无法自动续传
  • 无进度显示
  • 无法跳过已完成文件

✅ 总结推荐

1T 数据复制最佳方案是:

rsync -avh --partial --progress /source/ /destination/

搭配 screen 使用,避免中断丢数据。


使用 rsync 的实例演示:

如何使用 rsyncscreen 复制一个文件夹下的所有内容


🎯 目标:

/mnt/hdd/data_backup/ 中的所有文件和子目录复制到 /mnt/sdd/new_data/ 中。


✅ 实际操作步骤(带示例)

🔹 1. 安装 screen(如未安装)

sudo apt update
sudo apt install screen

🔹 2. 启动一个新的 screen 会话

screen -S rsync_copy

你现在进入了一个新的屏幕会话,复制过程中即使关闭终端或掉线也不影响任务运行。


🔹 3. 执行复制命令(复制所有内容,不包括顶级目录本身

rsync -avh --partial --progress /mnt/hdd/data_backup/ /mnt/sdd/new_data/
  • 结尾的 / 表示只复制 目录中的内容
  • 若写作 /mnt/hdd/data_backup(无斜杠),则会把整个 data_backup 文件夹复制进去

🔹 4. 分离 screen 会话(不中断任务)

按下以下快捷键:

Ctrl + A 然后按 D

终端会提示:

[detached from rsync_copy]

🔹 5. 后续查看进度或重新连接 screen 会话:

screen -r rsync_copy

🔹 6. 完成后退出 screen:

复制完成后,你可以输入 exit 退出该 screen 会话。


✅ 拓展说明

情况 建议
只复制文件夹结构(无内容) rsync -avh --include='*/' --exclude='*' ...
确保所有权和权限一致 使用 sudo rsync ...
复制后验证文件一致性 可用 rsync --checksum 或手动对比 md5/sha256

posted @ 2025-03-31 17:17  wuhaoliu  阅读(102)  评论(0)    收藏  举报