Linux 中的 scp 命令居然有大学问,它与rsync命令有啥区别,速看!

举报
wljslmz 发表于 2022/07/27 23:05:11 2022/07/27
【摘要】 scp,安全复制,该命令可以在两个位置之间安全地复制文件和目录。 使用 scp,可以复制文件: 从本地系统到远程系统。从远程系统到本地系统。 使用 scp 传输数据时,文件是加密的,因此任何敏感内容...

scp,安全复制,该命令可以在两个位置之间安全地复制文件和目录。

使用 scp,可以复制文件:

  • 从本地系统到远程系统。
  • 从远程系统到本地系统。

使用 scp 传输数据时,文件是加密的,因此任何敏感内容都不会在传输过程中被篡改。

在本文中,瑞哥将通过实例带大家了解如何使用 scp 命令、它的替代命令 rsync,这两个命令之间的区别以及哪个命令比另一个命令更受欢迎。

scp 命令语法

scp 命令语法如下所示:

scp <OPTION> source_file_name username@destination_host:destination_folder

  
 
  • 1

其中 OPTION 是scp 选项,例如:

  • -P :指定远程主机 ssh 端口。(P大写)
  • -p :保留文件修改和访问时间。(p小写)
  • -q :抑制进度表和非错误消息的选项。
  • -C :在数据发送到目标机器时压缩数据的选项。(C大写)
  • -r :递归复制目录的选项。
  • -v :详细模式,打印有关其进度的调试消息的选项,这有助于调试连接、身份验证和配置问题。(v小写)

请注意,scp 命令依赖 ssh 进行数据传输,因此它需要 ssh 密钥或密码才能在远程系统上进行身份验证。

此外,为了复制文件,您必须对源文件具有读取权限并在目标系统上具有写入权限。

将本地文件复制到远程系统

要将文件从本地复制到远程系统,请运行以下命令:

scp <fileName.txt> <remote_username>@<remote_ip_address>:<absolute_path>

  
 
  • 1

其中:

  • fileName.txt是我们要复制的文件名
  • remote_username是远程服务器上的用户
  • remote_ip_address是服务器IP地址
  • absolute_path 是您要将文件复制到的目录的路径

如果不指定任何远程目录,文件将被复制到远程用户主目录

系统将提示您输入用户密码,然后传输过程将开始。

ubuntuadmin@10.176.144.9's password:
example.txt                             100%    0     0.0KB/s   00:00

  
 
  • 1
  • 2

如果要以不同的名称保存文件,则需要指定新文件名:

scp file.txt remote_username@10.10.0.2:/remote/directory/newfilename.txt

  
 
  • 1

如果远程主机上的 SSH 正在监听默认端口 22 以外的端口,那么您可以使用 -P 参数指定端口:

scp -P 2322 file.txt remote_username@10.10.0.2:/remote/directory

  
 
  • 1

复制目录的命令类似于复制文件,唯一的区别是您需要使用 -r 标志进行递归。

要将目录从本地系统复制到远程系统,请使用 -r 选项:

scp -r /local/directory remote_username@10.10.0.2:/remote/directory

  
 
  • 1

rsync 命令

rsync 也是一个比较实用的命令,用于通过远程 shell 在两个位置之间同步文件,它通传输源和目标之间的差异来提供更快的文件传输。

rsync 可用于增量备份、在系统之间复制文件,可以替代 scp 、 sftp 和 cp 命令。

它还有一个简单的语法:

rsync <OPTION> dir1/ dir2

  
 
  • 1

在选项中,我们可以使用“-r”,这意味着递归,这是目录同步所必需的。

我们也可以使用** -a** 标志代替。

-a 选项是一个组合标志,它代表“归档”并递归同步并保留符号链接、组、所有者和权限,它比 -r 更常用

那么SCP和Rsync有什么区别呢🤔

  1. scp 通过安全的 SSH 连接将文件从本地机器复制到远程机器,而 rsync 允许您同步远程文件夹。

  2. scp 读取源文件并将其写入目标,是在本地或通过网络执行线性复制。rsync 也是在本地或通过网络复制文件,但它使用特殊的增量传输算法和一些优化来使操作更快。

  3. scp 总是安全的,而 rsync 必须通过 SSH 传输才能安全。

  4. 如果要传输大文件,并且传输在完成之前断开连接,rsync 会从中断的地方继续传输,而 scp 没有。

  5. rsync 比较每一端的文件并只传输更改文件的更改部分,当你第一次传输文件时,它的行为与 scp 非常相似,但是对于大多数文件未更改的第二次传输,它推送的数据将比 scp 少得多。这也是一种重新启动失败传输的便捷方法,你只需重新发出相同的命令,它就会从上次中断的地方开始,而 scp 将从头开始

总之,用scp比较多,因为它使用起来更简单。

对于重复性任务,如 cron 作业,请使用 rsync。如前所述,在多次调用时,它将利用已传输的数据,执行速度非常快并节省资源,它是在网络上保持两个目录同步的绝佳工具。

此外,在处理大文件时,请使用带有 -P 选项的 rsync。如果传输被中断,您可以通过重新发出命令从它停止的地方恢复它。

怎么样,一个小小的scp命令没想到居然有那么大学问吧!

文章来源: blog.csdn.net,作者:wljslmz,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_43025343/article/details/119413712

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。