rsync通过-e"ssh -p 端口号"指定非标准ssh端口实现增量同步,scp则用大写-p参数置于地址前,如scp -p 2222 file user@host:/path;二者均需确保端口开放、路径无歧义且目录同步加-r。

在非标准 SSH 端口(比如 2222、2223 或其他自定义端口)下用 scp 同步文件,关键不是加个 -P 就完事,而是要确保端口指定位置正确、权限可通、路径写法无歧义。
确认远程 SSH 服务监听的端口
先登录目标服务器,检查 /etc/ssh/sshd_config 中的 Port 配置项,例如:
Port 2222
保存后需重启 SSH 服务:sudo systemctl restart sshd。若防火墙启用(如 ufw 或 firewalld),也要放行该端口。
scp 命令中 -P 参数必须放在正确位置
-P 是大写 P,且必须紧接在 scp 命令之后、源或目标地址之前;它只作用于**紧随其后的那个主机地址**。常见错误是把它丢在最后或混淆成小写 -p(那是保留时间/权限的选项)。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
正确写法示例:
- 本地 → 远程(端口 2222):
scp -P 2222 file.txt user@host.example.com:/home/user/ - 远程 → 本地:
scp -P 2222 user@host.example.com:/var/log/app.log ./ - 远程 A → 远程 B(双端口都非标?需跳转):
scp -o ProxyJump=user@jump-host:2221 -P 2222 file.txt user@target:/path/
同步目录时记得加 -r,并注意路径结尾斜杠含义
复制整个文件夹必须带 -r,否则报错“not a regular file”。另外:
-
scp -r dir/ user@host:/dst/:把dir下的内容复制进/dst/ -
scp -r dir user@host:/dst/:把整个dir文件夹(含名字)复制为/dst/dir
如果还希望保留权限和时间戳,可叠加 -p:scp -P 2222 -rp mydata/ user@host:/backup/。
替代方案:rsync + ssh 更适合频繁同步
若需增量同步、断点续传或排除某些文件,rsync 比 scp 更高效。它复用 SSH 连接,同样支持自定义端口:
rsync -avz -e "ssh -p 2222" ./local/ user@host:/remote/-
-e "ssh -p 2222"显式指定 ssh 的端口,避免与 rsync 自身参数冲突 -
-a已包含递归、权限、时间等,比scp -rp更全面










