你的服务器信息
| 项目 |
值 |
| 环境 |
本地测试 |
| IP地址 |
192.168.3.99 |
| 用户名 |
test |
| 密码 |
brrj123!@# |
| 端口 |
22 |
| 目标文件1 |
/home/bid/bidding-zjgj/jar/one-main-0.0.1-SNAPSHOT.jar |
| 目标文件2 |
/home/bid/bidding-zjgj/one_main.yml |
方式一:scp(最常用,推荐)
1. 下载单个文件
scp -P 22 test@192.168.3.99:/home/bid/bidding-zjgj/jar/one-main-0.0.1-SNAPSHOT.jar ./
2. 下载多个文件到当前目录
scp -P 22 test@192.168.3.99:"/home/bid/bidding-zjgj/jar/one-main-0.0.1-SNAPSHOT.jar /home/bid/bidding-zjgj/one_main.yml" ./
3. 下载整个目录(如需)
scp -P 22 -r test@192.168.3.99:/home/bid/bidding-zjgj/jar ./
参数说明
| 参数 |
含义 |
-P 22 |
指定端口(大写P) |
-r |
递归下载整个目录 |
./ |
下载到当前目录,可换成 /path/to/dest |
密码输入
执行后会提示输入密码:brrj123!@#
方式二:sftp(交互式,适合多个文件)
sftp -P 22 test@192.168.3.99
连接后执行:
sftp> cd /home/bid/bidding-zjgj/jar
sftp> get one-main-0.0.1-SNAPSHOT.jar
sftp> cd /home/bid/bidding-zjgj
sftp> get one_main.yml
sftp> exit
一行命令批量下载
sftp -P 22 test@192.168.3.99 <<EOF
cd /home/bid/bidding-zjgj/jar
get one-main-0.0.1-SNAPSHOT.jar
cd /home/bid/bidding-zjgj
get one_main.yml
exit
EOF
方式三:rsync(适合大文件/断点续传)
rsync -avz -e "ssh -p 22" test@192.168.3.99:/home/bid/bidding-zjgj/jar/one-main-0.0.1-SNAPSHOT.jar ./
| 参数 |
含义 |
-a |
归档模式,保留权限等 |
-v |
显示详细过程 |
-z |
传输时压缩 |
方式四:免密传输(推荐长期使用)
1. 生成本地SSH密钥
ssh-keygen -t rsa -b 4096
2. 复制公钥到服务器
ssh-copy-id -p 22 test@192.168.3.99
按提示输入密码 brrj123!@# 一次,之后scp/sftp都不再需要输密码。
常用下载路径速查
| 场景 |
命令 |
| 下载jar包到当前目录 |
scp -P 22 test@192.168.3.99:/home/bid/bidding-zjgj/jar/one-main-0.0.1-SNAPSHOT.jar ./ |
| 下载yml到桌面 |
scp -P 22 test@192.168.3.99:/home/bid/bidding-zjgj/one_main.yml ~/Desktop/ |
| 下载到指定目录 |
scp -P 22 test@192.168.3.99:/home/bid/bidding-zjgj/jar/one-main-0.0.1-SNAPSHOT.jar /data/backup/ |
| 两个文件一起下载 |
scp -P 22 test@192.168.3.99:"/home/bid/bidding-zjgj/jar/one-main-0.0.1-SNAPSHOT.jar /home/bid/bidding-zjgj/one_main.yml" ./ |
注意事项
| 问题 |
解决 |
| 端口不对 |
确认 -P 22 是否正确(默认22可省略) |
| 权限不足 |
确认test用户对目标文件有读权限 ls -l /home/bid/bidding-zjgj/jar/ |
| 路径不存在 |
用 ssh test@192.168.3.99 "ls /home/bid/bidding-zjgj/" 先确认路径 |
| 特殊字符密码 |
交互式输入即可,shell中直接写特殊字符可能被解析 |