全部文档
当前文档

共搜索到 0 条结果

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

Linux系统文件拷贝实践教程

最近更新时间:2026-06-17 15:51:32

本实践主要介绍针对不同场景下,Linux系统中文件拷贝的具体操作。

背景信息

在日常运维工作中,文件拷贝看似是最基础的操作,但面对不同场景——海量小文件、TB 级大文件、跨公网传输、内网万兆环境——单一工具往往力不从心。

本文通过 3 个真实案例,分享如何根据场景选择合适方案。

实践流程

案例一:10 万+ 小文件迁移(开发环境打包)

场景描述

  • 源:代码仓库目录,约 12 万个文件,总计 2 GB

  • 目标:内网测试服务器

  • 痛点:SCP 逐个文件建立连接,预估耗时 3+ 小时

方案选择:Tar + Netcat 管道流

  1. 在目标服务器开启端口接收:

    nc -l 1234 | pv -s 2g | tar -x -C /data/project/
  2. 在源服务器发起传输:

    tar -c /source/codebase/ | pv -s 2g | nc -N 192.168.1.100 1234

技巧说明

  • pv -s 2g 预设总大小,显示百分比进度。

  • tar 打包消除小文件逐个连接的开销。

  • 内网环境无需加密层,可榨干带宽。

案例二:2 TB 数据库备份跨机房传输

场景描述

  • 源:生产机房数据库备份服务器

  • 目标:异地灾备中心

  • 约束:公网传输,安全优先,带宽 100 Mbps

方案选择:Rsync + SSH 断点续传

  1. 首次传输:

    rsync -avh --progress \
     -e "ssh -c aes128-gcm@openssh.com" \
     /backup/db-20240325.tar.gz \
     user@disaster-recovery:/backup/
  2. 中断后恢复(自动跳过已传部分):

    rsync -avh --progress \
     -e "ssh -c aes128-gcm@openssh.com" \
     /backup/db-20240325.tar.gz \
     user@disaster-recovery:/backup/

优化说明

  • 指定轻量加密算法 aes128-gcm,比默认 aes256 节省约 30% CPU。

  • 断点续传能力使网络抖动时无需重传 2 TB 数据。

  • 未启用 -z 压缩传输:对大文件压缩效果有限,反而增加 CPU 开销。

案例三:实时日志同步(流式传输)

场景描述

  • 需求:实时将应用日志传输到分析服务器

  • 约束:低延迟、低开销、持续流

方案选择:Socat 持久管道

  1. 在分析服务器开启端口接收并分流处理:

    socat tcp-listen:514,fork,reuseaddr - | \
     tee -a /data/logs/central.log | \
     grep "ERROR" >> /data/logs/errors.log
  2. 在应用服务器发起持续流传输:

    tail -f /var/log/app/production.log | \
     socat - tcp:analyzer.internal:514

优势说明

  • socatnc 更稳定,支持自动重连。

  • tee 实现一份数据多路处理,同步写入全量日志与错误日志。

  • 流式处理,无需等待文件轮转,延迟极低。

方案选型决策树

此处为方案选型决策树图示,直观展示不同场景下的工具选择路径。

总结

优先级

推荐工具

安全优先

SSH 系工具(SCP / Rsync)

速度优先

裸管道(nc / socat)

可靠优先

断点续传(Rsync)

文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈