Linux 命令:scp

概述

  • scp(Secure Copy)是 Linux 系统中用于在本地主机与远程主机之间通过 SSH 协议安全传输文件的命令,它基于 SSH 进行加密传输,确保文件传输过程的安全性。
  • 资料合集:https://pan.quark.cn/s/6fe3007c3e95

基本功能

在本地与远程主机之间、或两个远程主机之间复制文件/目录,支持跨服务器传输,且所有数据传输均经过加密。

常用格式

bash 复制代码
# 本地文件复制到远程主机
scp [选项] 本地文件 远程用户@远程主机IP:远程路径

# 远程文件复制到本地
scp [选项] 远程用户@远程主机IP:远程文件 本地路径

# 复制目录(需加 -r 选项)
scp -r [选项] 本地目录 远程用户@远程主机IP:远程路径
scp -r [选项] 远程用户@远程主机IP:远程目录 本地路径

核心选项与示例

  1. 基本文件传输

    • 本地 → 远程:

      bash 复制代码
      scp /home/user/file.txt root@192.168.1.100:/tmp/

      (将本地 /home/user/file.txt 复制到远程主机 192.168.1.100/tmp/ 目录下,使用 root 用户登录)

    • 远程 → 本地:

      bash 复制代码
      scp root@192.168.1.100:/var/log/syslog /home/user/

      (将远程主机的 /var/log/syslog 复制到本地 /home/user/ 目录)

  2. 传输目录(递归复制)

    使用 -r 选项递归传输整个目录:

    bash 复制代码
    # 本地目录 → 远程
    scp -r /home/user/docs root@192.168.1.100:/data/
    
    # 远程目录 → 本地
    scp -r root@192.168.1.100:/data/backups /home/user/
  3. 指定端口(非默认SSH端口)

    若远程主机的 SSH 端口不是默认的 22,使用 -P 选项指定端口:

    bash 复制代码
    scp -P 2222 file.txt root@192.168.1.100:/tmp/

    (注意是大写 -P,与 ssh 命令的 -p 不同)

  4. 压缩传输

    使用 -C 选项在传输时压缩文件,节省带宽(适用于大文件):

    bash 复制代码
    scp -C large_file.iso root@192.168.1.100:/data/
  5. 显示传输进度

    使用 -v 选项显示详细的传输过程(包括进度):

    bash 复制代码
    scp -v document.pdf user@example.com:~/
  6. 使用密钥认证(免密码)

    若已配置 SSH 密钥登录,可直接免密码传输:

    bash 复制代码
    scp -i ~/.ssh/id_rsa file.txt user@remotehost:/path/

    -i 指定私钥文件路径)

注意事项

  • 传输前需确保远程主机已开启 SSH 服务(默认端口 22)
  • 若远程路径是目录,需确保目录存在,否则会报错
  • 传输大文件时,可配合 nohupscreen 避免终端断开导致传输中断
  • scp 会覆盖目标路径中同名文件,且无提示,操作时需谨慎

scp 命令结合了 cp 命令的易用性和 SSH 的安全性,是服务器之间文件传输的常用工具,尤其适合脚本自动化和批量文件迁移场景。

相关推荐
Cyan_RA917 小时前
Linux 远程Ubuntu服务器扩展硬盘后,将/home目录移动到新的硬盘空间上(把新硬盘的分区挂载到/home目录) 教程
linux·运维·ubuntu
_dindong17 小时前
Linux网络编程:Socket编程TCP
linux·服务器·网络·笔记·学习·tcp/ip
七宝大爷17 小时前
深度解析英伟达DGX与HGX服务器——从架构差异到场景选择
运维·服务器·架构
wanhengidc17 小时前
服务器的安全性如何?
运维·服务器·安全·游戏·智能手机
taxunjishu17 小时前
DeviceNet 转 MODBUS TCP:倍福 CX 系列 PLC 与 MES 系统在 SMT 回流焊温度曲线监控的通讯配置案例
运维·人工智能·物联网·自动化·区块链
tianyuanwo17 小时前
tar打包过滤指定目录指南
linux·tar·过滤式打包
王嘉俊92517 小时前
DevOps 与 部署入门:加速软件交付与运维的实践指南
运维·devops
DARLING Zero two♡17 小时前
【Linux操作系统】简学深悟启示录:进程间通信
linux·运维·服务器
半梦半醒*17 小时前
gitlab部署
linux·运维·centos·ssh·gitlab·jenkins
TG_yunshuguoji18 小时前
阿里云国际代理:阿里云备份如何保障数据安全?
运维·阿里云·云计算