在服务器运维的过程中,经常用到服务器件文件相互传输,如果下载到本地在上传又比较麻烦,有限服务器还有各种限制,如果两个服务器是相通的,我们可以使用 rsync 来进行传输。
rsync是一个非常强大且高效的文件同步和传输工具,常用于在本地或远程系统之间同步文件和目录。
rsync 在大多数 Linux 发行版中默认已安装或可通过包管理器轻松安装。
rsync 安装
# 一、Linux 系统
#1. Debian / Ubuntu / Linux Mint
sudo apt update
sudo apt install rsync
#CentOS / RHEL / Rocky Linux / AlmaLinux(使用 yum 或 dnf)
#对于 CentOS 7 / RHEL 7
sudo yum install rsync
#对于 CentOS 8+ / RHEL 8+ / Rocky Linux / AlmaLinux:
sudo dnf install rsync
rsync 用法
基本用法
rsync [选项] 源路径 目标路径
本地到远程
rsync [选项] /本地/路径 user@remote:/远程/路径
远程到本地
rsync [选项] user@remote:/远程/路径 /本地/路径
典型使用示例
从本地同步到远程服务器(保留所有属性)
rsync -avz /data/ user@192.168.1.100:/backup/
从远程服务器拉取文件到本地
rsync -avz user@192.168.1.100:/var/log/nginx/ ./nginx_logs/
指定 SSH 端口(非默认 22)
rsync -avz -e "ssh -p 2222" /local/path/ user@remote:/remote/path/
排除某些文件
rsync -avz --exclude='*.log' --exclude='temp/' /source/ user@remote:/dest/
使用注意事项
路径结尾斜杠 / 很重要:
src/ → 同步 src 目录下的内容。
src → 同步整个 src 目录(在目标端生成 dest/src)。
权限问题:
如果需要保留文件属主(-o),执行用户通常是 root。
普通用户同步时,属主会被忽略或设为当前用户。
安全性:
建议使用 SSH 密钥认证,避免密码明文。
不建议对不可信来源使用 –delete,可能误删数据。
性能优化:
大量小文件:考虑打包成 tar 再传输。
高延迟网络:可加 –compress-level=9 提高压缩率(但 CPU 开销大)。
原创文章,作者:admin,如若转载,请注明出处:https://wpext.cn/383.html