高效同步Linux服务器文件技巧
使用 SCP 命令同步文件
SCP(Secure Copy Protocol)是一种基于 SSH 的安全文件传输工具,适用于在 Linux 服务器之间同步文件。以下是 SCP 的基本用法和常见场景。
命令格式
scp [选项] 源文件路径 用户名@服务器B_IP:目标路径
示例
scp -P 10000 /opt/demo.zip root@62.13.6.35:/opt/test/demo.zip
-P 10000
:指定目标服务器的 SSH 端口为 10000(默认是 22)/opt/demo.zip
:服务器 A 的源文件路径root@62.13.6.35
:服务器 B 的登录用户名和 IP 地址/opt/test/demo.zip
:服务器 B 的目标文件路径
使用 Rsync 进行高效同步
Rsync 比 SCP 更高效,尤其适合大文件或频繁同步的场景。它会检查文件差异,仅传输变化的部分。
基本命令格式
rsync -avz -e "ssh -p [端口]" [源文件路径] [目标路径]
示例
rsync -avz -e "ssh -p 10000" /opt/demo.zip root@62.13.6.35:/opt/test/
-avz
:归档模式(-a)、显示进度(-v)、压缩传输(-z)-e "ssh -p 10000"
:指定 SSH 端口为 10000/opt/demo.zip
:服务器 A 的源文件root@62.13.6.35:/opt/test/
:服务器 B 的目标目录
使用 SSH 密钥认证免密码同步
为避免每次同步输入密码,可以配置 SSH 密钥认证。
生成密钥对(服务器 A)
ssh-keygen -t rsa
将公钥复制到服务器 B
ssh-copy-id -i ~/.ssh/id_rsa.pub -p 10000 root@62.13.6.35
执行后,后续 SCP 或 Rsync 将不再需要输入密码。
同步目录而非单个文件
若需同步整个目录,SCP 和 Rsync 均支持递归传输。
SCP 同步目录
scp -P 10000 -r /opt/demo_dir root@62.13.6.35:/opt/test/
Rsync 同步目录
rsync -avz -e "ssh -p 10000" /opt/demo_dir/ root@62.13.6.35:/opt/test/demo_dir/
注意:Rsync 的源目录路径若带 /
(如 /opt/demo_dir/
),则同步目录内容;若不带 /
,则同步目录本身。
验证文件完整性(可选)
传输后可通过哈希校验确保文件一致。
生成哈希值(服务器 A)
md5sum /opt/demo.zip
验证哈希值(服务器 B)
md5sum /opt/test/demo.zip
若两端的哈希值相同,则文件传输无误。