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

Linux进阶命令-scp

作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注作者,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

经过上一章Linux日志的讲解,我们对Linux系统自带的日志服务已经有了一些了解。我们接下来将讲解一些进阶命令,主要从以下几个方面来讲解:一些系统操作,系统查看处理,Linux文本处理,逻辑判断,重定向,网络传输,服务启动,文件句柄等内容。通过这些操作,让你对Linux的操作更加得心应手,具体分成以下章节进行讲解:

Linux进阶命令-echo&date&alias

Linux进阶命令-top

Linux进阶命令-ps&kill

Linux进阶命令-sort&wc

Linux进阶命令-sed&split

Linux进阶命令-awk&uniq

Linux进阶命令-逻辑或&逻辑与

Linux进阶命令-重定向

Linux进阶命令-scp(本章节)

Linux进阶命令-rsync

Linux进阶命令-rsync-daemon

Linux进阶命令-nohup&screen

Linux进阶命令-lsof

Linux进阶命令-小结

随着命令的深入和网络介绍的相关信息,有一个问题如何把文件传输到服务器里面呢?在win到linux里面可以使用rz和sz进行文件传输,但是在linux里面如何通过网络传输文件呢?

SCP

scp(secure copy)命令用于在本地计算机和远程计算机之间或两个远程计算机之间安全地复制文件或目录。它基于 SSH 协议,因此在传输过程中会加密数据以保护安全性。scp 命令的语法和常用选项如下:

基本语法

scp [options] source destination
  • source 和 destination:指定要复制的文件或目录的路径,可以是本地路径或远程路径。

使用示例

1. 从本地复制文件到远程计算机

scp localfile.txt username@remotehost:/remote/path/

将 localfile.txt 文件从本地计算机复制到远程计算机的 /remote/path/ 目录中。

2. 从远程计算机复制文件到本地

scp username@remotehost:/remote/path/remotefile.txt /local/path/

将远程计算机上的 /remote/path/remotefile.txt 文件复制到本地计算机的 /local/path/ 目录中。

3. 从本地复制目录到远程计算机

scp -r localdir/ username@remotehost:/remote/path/

使用 -r 选项递归复制 localdir/ 目录及其内容到远程计算机的 /remote/path/ 目录中。

4. 从远程计算机复制目录到本地

scp -r username@remotehost:/remote/path/remotedir/ /local/path/

使用 -r 选项递归复制远程计算机上的 /remote/path/remotedir/ 目录及其内容到本地计算机的 /local/path/ 目录中。

5. 从一个远程计算机复制文件到另一个远程计算机

scp username1@remotehost1:/remote/path/file.txt username2@remotehost2:/remote/path/

将 remotehost1 上的 /remote/path/file.txt 文件复制到 remotehost2 上的 /remote/path/ 目录中。

说实话我都没用过这个复制方式。

常用选项

  • -r:递归复制整个目录。

  • -P port:指定远程主机的 SSH 端口(注意是大写的 -P,与 ssh 的小写 -p 不同)。

  • -i identity_file:指定用于身份验证的私钥文件。

  • -q:静默模式,不显示进度信息。

  • -C:启用压缩,以提高传输速度(对于大文件或慢速网络连接可能有用)。

  • -o option:传递选项给 SSH,例如 -o StrictHostKeyChecking=no 来禁用主机密钥检查。

认证方式

scp 使用 SSH 协议进行认证,支持多种身份验证方式:

  • 密码认证:在连接时输入 SSH 密码。

  • 密钥认证:使用 SSH 密钥对进行无密码登录。可以通过 -i 选项指定私钥文件。

安全性

scp 的安全性来自于 SSH 协议,这包括:

  • 数据加密:所有传输的数据都被加密,防止数据被窃听。

  • 身份验证:使用密码或密钥进行身份验证,确保访问权限。

  • 数据完整性:通过加密技术确保数据在传输过程中不被篡改。

总结

  1. scp 主要用户两个Linux服务器进行数据传输,其实win如果安装了git命令也可以用这个命令。

  2. 这里的用户名其实是可以省略的,默认它会读取当前登录系统的用户名

  3. 其实这里还涉及到ssh端口的问题,当然和用户名一样,它也会使用本地的ssh端口,也就是如果本地ssh端口和服务器一致则可以省略。

4.scp传输文件,如果目标端是存在文件的,则会覆盖该文件。

5.scp有一个重要的问题就是没有考虑复制中断的问题,还有增量复制的问题,也就是复制过程中如果出现意外你得重新来复制;如果复制命令的重复执行,则它也会再次复制。

图片

运维小路

一个不会开发的运维!一个要学开发的运维!一个学不会开发的运维!欢迎大家骚扰的运维!

关注微信公众号《运维小路》获取更多内容。


http://www.kler.cn/news/312566.html

相关文章:

  • k8s快速搭建+prometheus部署及使用(纯干货!!!)
  • 基于正点原子Linux开发板的智能监控与家电控制系统设计:深度解析Video4Linux和TCP/IP技术栈
  • android 删除系统原有的debug.keystore,系统运行的时候,重新生成新的debug.keystore,来完成App的运行。
  • Web开发:Thymeleaf模板引擎
  • Redis系列之底层数据结构SDS
  • 编程技巧:SQL 处理超大查询
  • 对商品分类系统的若干问题的思考
  • 【Linux】程序地址空间
  • 数据库函数
  • C++_CH18_构造函数与析构函数
  • Java优先级队列PriorityQueue
  • 大数据Flink(一百二十二):阿里云Flink MySQL连接器介绍
  • 将阮一峰老师的《ES6入门教程》的源码拷贝本地运行和发布
  • 【深度学习】注意力机制介绍,了解什么是注意力计算规则以及常见的计算规则,知道注意力机制的工作流程
  • Linux 基础入门操作-实验一 GCC使用
  • 优化 Elasticsearch 集群性能:解决节点压力不均衡问题及分片策略调整
  • git统计代码行数、提交数
  • 每日OJ题_牛客_WY22 Fibonacci数列(斐波那契)
  • 解决uniapp视频video组件进入全屏再退出全屏后,cover-view失效的问题
  • C++——用选择法对10个数值进行排序。
  • 即时通讯框架MobileIMSDK的H5端开发快速入门
  • Python数据分析案例60——扩展变量后的神经网络风速预测(tsfresh)
  • 系统架构设计师:系统架构设计
  • etcd二次封装
  • Docker上安装mysql
  • MySQL在大数据场景应用
  • 代码随想录训练营 Day60打卡 图论part10 SPFA算法 Bellman-Ford 之判断负权回路 Bellman-Ford 之单源有限最短路
  • vue常用业务场景
  • 通过springcloud gateway优雅的进行springcloud oauth2认证和权限控制
  • Python编码系列—Python代理模式:为对象赋予超能力的魔法