Linux每日一篇 - 60 - rsync
Linux文件同步神器!掌握rsync命令,高效同步文件,支持增量备份!
rsync命令是什么?
rsync是”Remote Sync”的缩写,是一个快速、高效的文件同步和备份工具,支持本地和远程同步,具有增量更新、压缩传输、权限保持等强大功能。
基本用法
# 本地同步
rsync -av source/ destination/
# 远程同步(推送)
rsync -av source/ user@remote:/path/to/destination/
# 远程同步(拉取)
rsync -av user@remote:/path/to/source/ destination/
# 基本同步选项
rsync -r source/ destination/ # 递归复制目录
rsync -a source/ destination/ # 归档模式(保持属性)
rsync -v source/ destination/ # 显示详细信息
rsync -z source/ destination/ # 启用压缩
实用技巧
# 保持所有属性(归档模式)
rsync -av source/ destination/
# 删除目标中多余的文件
rsync -av --delete source/ destination/
# 排除特定文件或目录
rsync -av --exclude='*.tmp' source/ destination/
rsync -av --exclude={'*.log','temp/'} source/ destination/
# 使用文件列表排除
rsync -av --exclude-from='exclude-list.txt' source/ destination/
# 显示传输进度
rsync -av --progress source/ destination/
# 限制传输速度
rsync -av --bwlimit=1000 source/ destination/
# 只同步文件大小不同的文件
rsync -av --size-only source/ destination/
常用场景
# 创建备份
rsync -av --delete /home/user/ /backup/user/
# 同步网站文件
rsync -avz --progress /var/www/html/ user@server:/var/www/html/
# 推送配置文件
rsync -avz ~/.ssh/ user@remote:~/.ssh/
# 恢复备份
rsync -av --delete /backup/user/ /home/user/
# 同步大文件(显示进度)
rsync -avz --progress --human-readable /large/directory/ /backup/
# 镜像整个目录结构
rsync -avz --links --hard-links --delete /source/ /destination/
# 安全备份(远程)
rsync -avz -e ssh /local/path/ user@remote:/remote/path/