Rsync 同步文件
你可以使用以下命令组合来实现 rsync 先检查再同步,并显示进度条:
直接上示例:
例如本网站资源的更新
# # 1. 先进行模拟运行(检查) --- 检查要同步的内容
rsync -avn --checksum --progress --delete /www/fanconn_wiki/wiki/ c:/www/wiki/
# 2. 确认无误后实际同步
rsync -av --checksum --progress --delete /www/fanconn_wiki/wiki/ c:/www/wiki/
# 显示更详细的进度信息
rsync -av --progress --stats --human-readable 源目录/ 目标目录/
# 或者使用更直观的进度条(需要安装 pv)
rsync -av 源目录/ 目标目录/ | pv -lep -s $(du -sb 源目录/ | cut -f1)
方法一: 分两步执行(推荐)
# 1. 先进行模拟运行(检查)
rsync -avun --progress 源目录/ 目标目录/
# 2. 确认无误后实际同步
rsync -av --progress 源目录/ 目标目录/
方法二: 使用 --dry-run 参数先检查
# 先检查(模拟运行)
rsync -avun --progress 源目录/ 目标目录/
# 或者使用 --dry-run
rsync -av --dry-run --progress 源目录/ 目标目录/
# 检查无误后,去掉 -n 或 --dry-run 进行实际同步
rsync -av --progress 源目录/ 目标目录/
关键参数说明
-
-a: 归档模式,保持文件属性 -
-v: 详细输出 -
-u: 跳过目标目录中更新的文件(仅同步更新的文件) -
-n或--dry-run: 模拟运行,不实际复制文件 -
--checksum: 最慢,计算每个文件的MD5校验和 -
--progress: 显示传输进度 -
--delete: 删除目标目录中源目录不存在的文件 -
--delete-excluded: 同时删除被排除的文件(如果使用了排除规则) -
注意: 源目录路径结尾的
/很重要,它表示同步目录内容而非目录本身
这样你就可以先看到哪些文件会被同步,确认无误后再执行实际的文件传输,同时还能看到传输进度。
