Linux 远程文件复制传输-----scp/rsync/sftp

scp(Secure Copy Protocol)是基于 SSH 的安全文件传输工具,可用于在本地和远程计算机之间复制文件或目录。


1. scp(基于 SSH 复制文件)

a. 复制文件到远程

  • 从本地复制到远程

    scp localfile.txt user@remote_host:/remote/path/
    

    📌 解释:将本地文件 localfile.txt 复制到远程主机 remote_host 的 /remote/path/ 目录下。

  • 从远程复制到本地

    scp user@remote_host:/remote/path/file.txt /local/path/
    

    📌 解释:将远程主机上的 file.txt 下载到本地 /local/path/ 目录下。

  • 复制整个目录(-r 递归)

    scp -r localdir user@remote_host:/remote/path/
    

    📌 解释:将本地目录 localdir 及其内容递归复制到远程 remote_host 的 /remote/path/ 目录。

b. 下载远程文件到本地

scp user@remote_host:/remote/path/file.zip /local/path/

📌 示例:从远程服务器 192.168.1.100 下载 file.zip 到本地 /home/user/ 目录:

scp user@192.168.1.100:/home/user/file.zip /home/user/

c. 下载远程目录

scp -r user@remote_host:/remote/path/ /local/path/

📌 示例:下载整个 backup 目录:

scp -r user@192.168.1.100:/home/user/backup/ /home/user/

d. 指定 SSH 端口

如果 SSH 端口不是默认的 22,可以使用 -P 选项:

scp -P 2222 user@remote_host:/remote/path/file.zip /local/path/

2. rsync(更高效的文件同步,支持断点续传)

a. 下载远程文件到本地

rsync -avP user@remote_host:/remote/path/file.zip /local/path/

📌 示例:从 192.168.1.100 下载 file.zip

rsync -avP user@192.168.1.100:/home/user/file.zip /home/user/

b. 下载远程目录

rsync -avP user@remote_host:/remote/path/ /local/path/

📌 示例:下载整个 backup 目录:

rsync -avP user@192.168.1.100:/home/user/backup/ /home/user/

c. 指定 SSH 端口

rsync -avP -e "ssh -p 2222" user@remote_host:/remote/path/ /local/path/

3. 使用 sftp(交互式下载)

如果你需要交互式浏览远程文件再下载,可以使用 sftp

sftp user@remote_host

然后在 sftp> 提示符下执行:

get /remote/path/file.zip

下载整个目录:

get -r /remote/path/

4. 使用密钥文件进行认证

scp -i ~/.ssh/id_rsa localfile.txt user@remote_host:/remote/path/

📌 解释:使用 ~/.ssh/id_rsa 作为身份认证密钥。


5. 多文件复制

scp file1.txt file2.txt user@remote_host:/remote/path/

📌 解释:同时复制多个文件到远程服务器。


总结

方式适用场景命令示例
scp直接复制文件scp user@remote:/file.zip /local/
scp -r复制整个目录scp -r user@remote:/dir/ /local/
rsync高效同步(支持断点续传)rsync -avP user@remote:/file.zip /local/
rsync -r同步整个目录rsync -avP user@remote:/dir/ /local/
sftp交互式文件下载sftp user@remote

你是要下载单个文件,还是整个目录?是否需要断点续传?

注意事项

  1. 远程路径必须有写入权限,否则会报错 Permission denied
  2. scp 需要 SSH 访问权限,请确保可以 ssh user@remote_host 登录远程服务器。
  3. 如果连接失败,请检查 SSH 端口和防火墙设置。
  4. 如果传输大文件或不稳定的网络环境,建议使用 rsync 替代 scp,支持断点续传:
    rsync -avP localfile.txt user@remote_host:/remote/path/
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

澄风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值