一、SCP命令基础原理
SCP(Secure Copy Protocol)是基于SSH协议的安全文件传输工具,采用AES-128等加密算法保障传输安全。相比FTP,其优势在于:
- 无需额外安装服务端软件
- 默认使用22端口,避免防火墙拦截
- 支持Linux/Unix和Windows(通过WinSCP等客户端)
二、批量传输实战技巧
1. 批量上传文件
上传当前目录所有.jpg文件到远程tmp目录
scp .jpg user@remote:/tmp/
递归上传整个目录(包含子目录)
scp -r project_dir/ user@remote:/opt/
2. 批量下载文件
下载远程log目录下所有.log文件
scp "user@remote:/var/log/.log" ./logs/
保持原时间戳和权限(-p参数)
scp -rp user@remote:/backup/database/ ./local_backup/
3. 高级通配符应用
传输2023年1月的日志文件(需要远程shell支持)
scp "user@remote:/logs/202301.log" ./monthly_logs/
排除特定文件类型
scp "user@remote:/data/!(.tmp)" ./clean_data/
三、性能优化与安全建议
- 压缩传输:添加
-C
参数启用gzip压缩(适合文本文件) - 限速控制:
-l 1000
限制带宽为1000Kbit/s - 密钥认证:配置SSH免密登录避免频繁输密码
- 连接复用:修改
~/.ssh/config
添加ControlMaster auto
四、常见问题解决方案
- Q: 传输中断如何续传?
- A: 建议改用rsync命令,或使用
screen
/tmux
保持会话 - Q: 出现”Argument list too long”错误?
- A: 改用find+xargs组合:
find . -name ".csv" -print0 | xargs -0 scp user@remote:/target
评论