# rsync
文件传输,同步工具
rsync 是一个非常强大的文件传输和同步工具,广泛用于在本地和远程系统之间高效地复制和同步文件。它的主要优势在于仅传输已更改的部分,从而节省带宽和时间。
# 基本用法
rsync [options] source destination
1
# 常用选项
基本选项:
-a:归档模式,等同于-rlptgoD,表示递归复制并保留符号链接、权限、时间戳、组和所有者。-v:详细模式,显示传输过程中的详细信息。-z:在传输时压缩文件,节省带宽。-P:显示进度,并在中断时支持断点续传。-h:以人类可读的方式显示文件大小。
文件选择:
--include=PATTERN:包含匹配的文件。--exclude=PATTERN:排除匹配的文件。--exclude-from=FILE:从文件中读取要排除的模式。
权限和所有权:
--no-owner:不保留文件所有者信息。--no-group:不保留文件组信息。--chown=USER:GROUP:在目标上更改文件的所有者和组。
网络选项:
-e SSH:通过 SSH 进行传输。--bwlimit=RATE:限制带宽使用。
其他有用的选项:
--dry-run:执行模拟操作,显示将要做的更改,但不实际执行。--delete:在目标中删除源中不存在的文件。
# 示例
本地文件夹同步:
rsync -av /path/to/source/ /path/to/destination/1远程文件夹同步:
rsync -avz -e ssh /path/to/source/ user@remote_host:/path/to/destination/1排除特定文件类型:
rsync -av --exclude='*.tmp' /path/to/source/ /path/to/destination/1使用带宽限制:
rsync -av --bwlimit=1000 /path/to/source/ user@remote_host:/path/to/destination/1模拟执行:
rsync -av --dry-run /path/to/source/ /path/to/destination/1后台执行:
# H为迁移时保留硬链接 nohup sudo rsync -avH --progress /media/ /store/media/ > /store/rsync.log 2>&1 & # 排除文件 nohup sudo rsync -avH --progress --exclude 'folder_name_a' --exclude 'folder_name_b' /store/share/PT/ /media/share/PT/ > /media/pt.log 2>&1 &1
2
3
4
5
# 常见错误及解决
- 权限问题:如果遇到权限相关的错误,可以尝试使用
sudo或者--no-owner和--no-group选项。 - 文件系统限制:某些文件系统(如 exFAT)不支持 UNIX 风格的权限,可能导致错误。
- 网络问题:如果在远程传输中遇到问题,检查网络连接和 SSH 配置。