Shell Daily 2026-01-26: 完美传输 (Rsync Progress)

Shell Daily 2026-01-26: 完美传输 (Rsync Progress)

在本地或服务器之间复制大文件时,cpscp 常常让人提心吊胆:光标在那里闪烁,没有任何反馈。你不知道它是卡住了、快完了,还是刚刚开始。更糟糕的是,如果传输到 99% 网络波动断开了,你只能从头再来。

对于大文件传输,请彻底遗忘 cp,拥抱 rsync

怎么用

rsync 不仅是远程同步工具,也是本地复制的神器。配合 -P 参数,它能提供工业级的传输体验。

  • -P:这是一个组合参数,等同于 --partial + --progress

  • --progress:显示进度条、传输速度和预计剩余时间。

  • --partial断点续传。如果传输中断,它会保留已传输的半成品文件,下次运行时直接从断点继续,而不是重头开始。

  • 兼容性:Linux/macOS 标配(或通过包管理器轻松获取)。

适用场景

  • 大文件迁移:移动几十 GB 的数据库备份或 Docker 镜像。
  • 不稳定网络:在 VPN 或弱网环境下传输文件。
  • 本地拷贝:替代 cp 复制大目录,获得进度反馈。

示例 1:本地大文件复制 (带进度条)

想把 50GB 的日志文件备份到挂载的硬盘,cp 是黑盒,rsync 是可视化的。

# -a: 归档模式(保留权限等); -P: 进度+断点续传
$ rsync -aP /var/log/nginx/access.log.huge /mnt/backup/
sending incremental file list
access.log.huge
     32,505,856   3%   45.21MB/s    0:15:32  <-- 清晰的反馈

示例 2:远程断点续传 (SSH)

传输进行了一半 SSH 断了?没关系,再次执行完全相同的命令,它会自动识别并继续传输剩余部分。

# 就像用 scp 一样,但更强健
$ rsync -P -e ssh db_dump_2026.sql user@192.168.1.50:/data/backup/
posted @ 2026-01-26 12:45  Terrasse  阅读(6)  评论(0)    收藏  举报