Step1 复制

优先rsync,次选cp

rsync

rsync -av --sparse 源目录/ 目标目录/

rsync远程

rsync -av --sparse --progress user@remote-host:/path/to/source/directory/ /path/to/local/destination/

如需要启用传输时压缩,则将-av改为-avz (局域网下和本地不需要压缩)。

参数解释
  1. rsync 基本介绍:

    • 一个高效的文件同步和传输工具
    • 支持增量传输(只传输变化的部分)
    • 可以保持文件的所有属性
  2. 参数解释:

    • -a(archive模式)包含以下功能:

      • -r:递归复制目录
      • -l:复制符号链接
      • -p:保持权限
      • -t:保持时间戳
      • -g:保持组
      • -o:保持所有者
      • -D:保持设备文件和特殊文件
    • -v(verbose):

      • 显示详细的传输信息
      • 可以看到每个被传输的文件
    • --sparse:

      • 特殊处理稀疏文件
      • 保持文件的"稀疏"特性
      • 节省磁盘空间
  3. 路径格式说明:

    • 源目录/:末尾的/很重要

      • 带/:复制目录中的内容
      • 不带/:复制目录本身
    • 目标目录/

      • 指定同步的目标位置
      • 如果目标目录不存在,会自动创建
  4. 命令执行效果:

    • 将源目录中的所有内容复制到目标目录
    • 保持所有文件属性和权限
    • 智能处理稀疏文件
    • 显示传输进度
    • 只传输发生变化的文件
  5. 常见使用场景:

    • 备份数据
    • 目录同步
    • 服务器之间传输文件
    • 维护镜像站点
  6. 优势:

    • 效率高(增量传输)
    • 可靠性好
    • 保持文件属性
    • 支持断点续传
    • 网络传输时支持压缩

使用示例:

# 本地目录同步
rsync -av --sparse /home/user/docs/ /backup/docs/

# 远程同步(通过SSH)
rsync -av --sparse /local/path/ user@remote:/path/

cp

rsync -av --sparse 源目录/ 目标目录/

Step2 校验

md5sum校验原始数据和备份数据

find 源目录 -type f -exec md5sum {} \; | sort > 源.md5
find 目标目录 -type f -exec md5sum {} \; | sort > 目标.md5
diff 源.md5 目标.md5
参数解释
1. `find 目录`
   - find 命令用于在指定目录中搜索
   - "目录" 是要搜索的起始目录

2. `-type f`
   - 指定只查找普通文件
   - 排除目录、符号链接等其他类型的文件

3. `-exec md5sum {} \;`
   - -exec 表示对找到的每个文件执行后面的命令
   - md5sum 是计算文件的 MD5 校验和的命令
   - {} 是一个占位符,代表 find 找到的每个文件名
   - \; 表示 -exec 命令的结束

4. `| sort`
   - | 是管道符号,将前面命令的输出传递给 sort 命令
   - sort 命令将结果按字母顺序排序

5. `> xxx.md5`
   - > 是重定向符号,将排序后的结果保存到文件
   - xxx.md5 是保存结果的目标文件