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 数据可能持续几小时甚至更久,建议使用 screen 或 tmux:
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 的实例演示:
如何使用 rsync 和 screen 复制一个文件夹下的所有内容。
🎯 目标:
将 /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 |

浙公网安备 33010602011771号