SCP远程文件传输用法
SCP(Secure Copy Protocol)是基于SSH的文件传输工具,加密传输,用法跟cp差不多,只是目标路径可以带主机名。适合少量文件、一次性拷贝,不需要像rsync那样做增量同步。
基本语法
scp [选项] 源路径 目标路径
源或目标路径如果是远程文件,格式:`用户名@主机:路径`
本地拷贝到远程
scp ./local_file.txt user@192.168.1.100:/home/user/
把当前目录下的local_file.txt传到192.168.1.100的/home/user/目录下。没有指定远程文件名,就用原名。
改远程文件名:
scp ./local_file.txt user@192.168.1.100:/home/user/remote_file.txt
远程拷贝到本地
scp user@192.168.1.100:/home/user/remote_file.txt ./
拉到当前目录,文件名保持remote_file.txt。
拷贝目录
加 `-r` 递归复制整个目录:
scp -r ./project/ user@192.168.1.100:/home/user/backup/
同样支持远程目录拉到本地:
scp -r user@192.168.1.100:/home/user/data/ ./data_backup/
指定端口
SSH默认端口22,如果远程服务器改了端口(比如2222),加 `-P` (大写P):
scp -P 2222 ./file.txt user@192.168.1.100:/home/user/
注意:`-P` 跟ssh的 `-p` 不一样,SCP用大写,容易记混。
限速传输
避免占满带宽,用 `-l` 限制带宽,单位是Kbit/s(注意不是KB/s,1KB/s=8Kbit/s):
scp -l 1024 ./bigfile.iso user@192.168.1.100:/home/user/
1024 Kbit/s = 128 KB/s,适合后台传大文件不影响线上业务。
保留文件属性
`-p`(小写p)保留修改时间、访问时间、权限:
scp -p ./config.conf user@192.168.1.100:/home/user/
压缩传输
`-C` 开启压缩,适合文本文件、日志、代码,能省带宽。二进制文件(压缩包、图片)压缩效果不大,反而浪费CPU:
scp -C ./log.txt user@192.168.1.100:/home/user/
安静模式
`-q` 不显示进度条,适合脚本里用,减少输出噪音:
scp -q ./file.txt user@192.168.1.100:/home/user/
使用密钥文件
默认用`~/.ssh/id_rsa`,指定其他密钥用 `-i`:
scp -i ~/.ssh/my_key.pem ./file.txt user@192.168.1.100:/home/user/
常见坑
– 远程路径没写对:SCP不会自动创建目录,目标目录必须存在。比如 `/home/user/new_folder/` 如果new_folder不存在,直接报错。需要先ssh上去mkdir。
– 通配符问题:本地通配符由shell展开,没问题。远程路径的通配符要转义或者用引号包起来。比如从远程拉所有.log文件:
scp user@192.168.1.100:"/home/user/*.log" ./
双引号防止本地shell展开星号。
– 覆盖文件:默认直接覆盖,没有提示。如果怕误覆盖,可以用 `-i`(小写i)交互模式,覆盖前询问,但实际很少有人用,因为脚本里不需要交互。
实际场景:在雨云服务器之间传文件
假设雨云上两台云服务器,A(192.168.1.10)和B(192.168.1.20),要从A传一个备份文件到B。
在A上执行:
scp /data/backup.tar.gz user@192.168.1.20:/data/
如果B的SSH端口不是默认22,比如2222:
scp -P 2222 /data/backup.tar.gz user@192.168.1.20:/data/
雨云的内网带宽一般跑满,传大文件很快。如果文件几十GB,建议用screen或nohup挂后台,避免SSH断开中断传输:
nohup scp /data/backup.tar.gz user@192.168.1.20:/data/ &
SCP vs rsync
SCP适合一次性的、小文件传输。rsync支持增量、断点续传、删除目标端多余文件。日常备份用rsync,临时传几个文件用scp更快。
一句话总结
SCP = 加密版cp,记住 `-r` 传目录,`-P` 指定端口,`-C` 压缩文本,`-l` 限速,目标目录必须存在。
雨云是国内一家老牌云服务商,提供高性价比的云服务器和虚拟主机。我用它部署了好几个项目,速度和稳定性都不错。通过 https://www.rainyun.com/SAJA_ 注册可以领一张 5折优惠券,有需要的朋友可以看看。



暂无评论内容