scp(Secure Copy,安全复制)是一个基于 SSH 协议的网络传输工具,主要用于在本地与远程主机之间,或者两台远程主机之间进行加密的文件传输。由于底层依赖 SSH,它在传输过程中会对文件内容、用户名和密码进行加密,能有效防止中间人窃听或篡改,非常适合数据备份和应用部署等场景。
核心语法
scp 的通用语法格式为:
scp [选项] [[用户@]源主机:]源文件路径 [[用户@]目标主机:]目标文件路径
常见使用场景
- 从本地上传文件到远程服务器
scp /path/to/local_file user@remote_host:/path/to/remote_directory/
- 从远程服务器下载文件到本地
scp user@remote_host:/path/to/remote_file /path/to/local_directory/
- 在两个远程主机之间直接复制(通过本地中转)
scp user1@host1:/path/to/file user2@host2:/path/to/destination/
- 递归复制整个文件夹
scp -r /path/to/local_directory user@remote_host:/path/to/remote_destination/
常用参数说明
-r:递归复制整个目录及其子文件夹(传输文件夹时必加)。
-P:指定远程主机的 SSH 端口号(注意是大写 P),如果非默认的 22 端口需使用此参数。
-p:保留源文件的修改时间、访问时间和权限属性。
-C:启用压缩传输,适合文本类文件,可提升传输速度。
-v:显示详细输出模式,便于排查连接问题。
-l:限制传输带宽(单位 Kbps),防止占用过多网络资源。