Appearance
rsync 命令:远程文件同步工具
1. 命令简介
rsync
是一个快速、多功能的文件复制工具。它可以在本地复制文件,或者通过网络在本地和远程系统之间同步文件。rsync
以其增量传输算法而闻名,只传输文件的变化部分,大大减少了数据传输量。
2. 基本语法
bash
rsync [选项] 源 目标
3. 常用选项
-a
:归档模式,保留所有文件属性-v
:详细模式,显示详细信息-z
:压缩传输-r
:递归复制目录-u
:仅复制较新的文件--delete
:删除目标位置多余的文件-n
或--dry-run
:模拟运行,不实际执行-e
:指定远程 shell 程序
4. 基础使用示例
本地同步:
bashrsync -av source_directory/ destination_directory/
远程同步(从本地到远程):
bashrsync -avz /local/dir/ user@remote_host:/remote/dir/
远程同步(从远程到本地):
bashrsync -avz user@remote_host:/remote/dir/ /local/dir/
使用 SSH 进行远程同步:
bashrsync -avz -e ssh /local/dir/ user@remote_host:/remote/dir/
5. 进阶使用技巧
使用
--delete
选项保持完全同步:bashrsync -avz --delete source/ destination/
排除特定文件或目录:
bashrsync -av --exclude='*.log' source/ destination/
仅同步特定类型的文件:
bashrsync -av --include='*.txt' --exclude='*' source/ destination/
限制带宽使用:
bashrsync -avz --bwlimit=1000 source/ destination/
6. 实用示例
创建远程备份:
bashrsync -avz --backup --backup-dir=/path/to/backups /source/ user@remote:/destination/
使用
rsync
作为备份工具:bashrsync -avb --delete --backup-dir=/path/to/backups /source/ /destination/
镜像整个网站:
bashrsync -avz --delete --exclude='.htaccess' /local/website/ user@remote:/var/www/html/
在两个远程系统之间同步:
bashrsync -avz user1@host1:/source/ user2@host2:/destination/
7. 注意事项
- 使用
--delete
选项时要特别小心,确保不会意外删除重要文件。 - 在首次使用新的 rsync 命令时,建议先使用
--dry-run
选项进行测试。 - 源路径末尾的斜杠
/
很重要,它决定了是复制目录本身还是目录的内容。
8. 相关命令
scp
:安全复制cp
:复制文件和目录sftp
:安全文件传输协议tar
:归档工具
9. 技巧与建议
使用
--progress
显示传输进度:bashrsync -avz --progress source/ destination/
创建 rsync 的别名以简化常用命令:
bashalias sync-docs='rsync -avz --delete ~/Documents/ user@remote:/backup/documents/'
使用
--partial
支持断点续传:bashrsync -avz --partial large_file user@remote:/destination/
在 cron 作业中使用 rsync 进行定期备份:
bash0 1 * * * rsync -avz --delete /source/ /backup/
rsync
是一个强大而灵活的文件同步和传输工具。它不仅高效,而且可以处理各种复杂的同步场景。无论是本地文件复制,还是远程服务器间的数据同步,rsync 都能胜任。掌握 rsync 可以大大提高文件管理和系统备份的效率。对于系统管理员和需要频繁进行文件同步的用户来说,rsync 是一个不可或缺的工具。