前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >Linux进阶命令-scp

Linux进阶命令-scp

作者头像
运维小路
发布2024-11-01 19:38:20
发布2024-11-01 19:38:20
12200
代码可运行
举报
文章被收录于专栏:运维小路运维小路
运行总次数:0
代码可运行

作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

经过上一章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 命令的语法和常用选项如下:

基本语法

代码语言:javascript
代码运行次数:0
复制
scp [options] source destination
  • sourcedestination:指定要复制的文件或目录的路径,可以是本地路径或远程路径。

使用示例

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

代码语言:javascript
代码运行次数:0
复制
scp localfile.txt username@remotehost:/remote/path/

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

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

代码语言:javascript
代码运行次数:0
复制
scp username@remotehost:/remote/path/remotefile.txt /local/path/

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

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

代码语言:javascript
代码运行次数:0
复制
scp -r localdir/ username@remotehost:/remote/path/

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

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

代码语言:javascript
代码运行次数:0
复制
scp -r username@remotehost:/remote/path/remotedir/ /local/path/

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

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

代码语言:javascript
代码运行次数:0
复制
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有一个重要的问题就是没有考虑复制中断的问题,还有增量复制的问题,也就是复制过程中如果出现意外你得重新来复制;如果复制命令的重复执行,则它也会再次复制。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-08-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维小路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基本语法
  • 使用示例
  • 常用选项
  • 认证方式
  • 安全性
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档