当前位置: 首页 > news >正文

linux常用命令(10):scp命令(远程拷贝命令,复制文件到远程服务器)

文章目录

  • 一、SCP介绍
    • 1.1、语法
    • 1.2、核心功能场景
  • 二、示例
    • 2.1、本地文件复制到远程服务器
    • 2.2、从远程主机复制文件到本地
    • 2.3、递归复制目录
    • 2.4、从远程服务器上复制目录
    • 2.5、自定义端口
    • 2.6、迁移整个网站目录

一、SCP介绍

Linux scp 命令是一个用于在本地计算机和远程计算机之间进行文件传输的命令行工具。这个命令基于SSH(Secure Shell)协议,提供了加密和安全的文件传输功能。实现不同服务器之间的文件传输

scpsecure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。

scp 是加密的,rcp 是不加密的,scprcp 的加强版。

1.1、语法

scp [选项] [源文件] [目标路径]
  • [选项]:用于指定 scp 命令的行为,例如递归复制、保留文件属性等。
  • [源文件]:要复制的文件或目录的路径。
  • [目标路径]:文件或目录要复制到的目标路径。

常用选项:

以下是一些常用的 scp 命令选项:

  • -r:递归复制整个目录。
  • -P:指定远程主机的 SSH 端口号(默认是 22)。
  • -p:保留文件的修改时间、访问时间和权限。
  • -v:显示详细的调试信息,有助于排查问题。
  • -C:启用压缩,可以加快传输速度。

1.2、核心功能场景

本地 → 远程 (推送)

scp /local/file.txt user@remote_ip:/remote/directory/示例:
#将本地文件推送到远程服务器/home/root目录下
scp /local/file.txt  root@192.168.10.1:/home/root

远程 → 本地 (拉取)

scp user@remote_ip:/remote/file.txt /local/directory/

远程 → 远程

scp user1@source_ip:/path/file user2@target_ip:/target/path/

二、示例

2.1、本地文件复制到远程服务器

假设你有一个文件 file.txt,你想将它复制到远程主机的 /home/user/ 目录下,可以使用以下命令

scp file.txt user@remote_host:/home/user/

在这个命令中:

  • file.txt 是本地文件。
  • user@remote_host 是远程主机的用户名和地址。
  • /home/user/ 是远程主机上的目标路径。

2.2、从远程主机复制文件到本地

如果你想将远程主机上的文件 file.txt 复制到本地的当前目录,可以使用以下命令:

scp user@remote_host:/home/user/file.txt .

在这个命令中:

  • user@remote_host:/home/user/file.txt 是远程主机上的文件路径。
  • . 表示当前目录。

2.3、递归复制目录

如果你想复制整个目录及其内容,可以使用 -r 选项。例如,将本地的 my_directory 目录复制到远程主机的 /home/user/ 目录下:

scp -r my_directory user@remote_host:/home/user/

2.4、从远程服务器上复制目录

将远程服务器上/tmp/file目录的所有文件复制到当前目录

scp -r root@remote_ip:/tmp/file .

2.5、自定义端口

SCP 使用端口 22 作为默认端口。但是出于安全原因,您可以将端口更改为另一个端口。例如,我们将使用端口 2222。那么命令必须像这样。

scp -P  2222 file.tar.gz root@remote_ip:/tmp/

2.6、迁移整个网站目录

scp -rpC -P 2222 /var/www/html/ root@remote_ip:/var/www/

参数解析:
-r递归 -p保留属性 -C压缩 -P指定端口

http://www.dtcms.com/a/265629.html

相关文章:

  • PlatformIO 在使用 GitHub 上的第三方库
  • Spark 4.0的VariantType 类型以及内部存储
  • 云上堡垒:如何用AWS原生服务构筑坚不可摧的主机安全体系
  • java教程——初识guava(2)
  • 在 React 中使用 WebSockets 构建实时聊天应用程序
  • 实训项目记录 | 7.3
  • AI会取代网络工程师吗?理解AI在网络安全中的角色
  • 【网络安全】Webshell命令执行失败解决思路
  • 如何避免服务器出现故障情况?
  • 数据库服务端有连接数限制吗
  • vue3 + cesium + heatmapjs 开发热力图(不需要CesiumHeatMap插件)
  • JA3指纹在Web服务器或WAF中集成方案
  • 在银河麒麟V10 SP1上手动安装与配置高版本Docker的完整指南
  • Element UI 完整使用实战示例
  • Flutter 进阶:实现带圆角的 CircularProgressIndicator
  • 解决安装SunloginClient问题记录(Ubuntu 24.04.2)
  • 删除docker镜像后如何正确清理残余
  • 前端的一些报错
  • AIX 环境磁盘空间管理指南
  • 从零开始构建Airbyte数据管道:PostgreSQL到BigQuery实战指南
  • CentOS系统高效部署fastGPT全攻略
  • 两级缓存 Caffeine + Redis 架构:原理、实现与实践
  • 跨云架构:性能、成本与合规的平衡艺术
  • Linux 73 LAMP4
  • 渗透测试中 phpinfo() 的信息利用分析
  • Java接口报错:Packet for query is too large - 解决方案与架构思考
  • 从0到1搭建同城O2O外卖平台:外卖系统源码架构解析与实战指南
  • 前置代理重构网络访问的「中转站」
  • YOLOv2 正负样本分配机制详解
  • ollama bge-m3 Embending模型永久加载 does not support generate