Linux 中的 scp 命令居然有大学问,它与rsync命令有啥区别,速看!
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有什么区别呢🤔
-
scp 通过安全的 SSH 连接将文件从本地机器复制到远程机器,而 rsync 允许您同步远程文件夹。
-
scp 读取源文件并将其写入目标,是在本地或通过网络执行线性复制。rsync 也是在本地或通过网络复制文件,但它使用特殊的增量传输算法和一些优化来使操作更快。
-
scp 总是安全的,而 rsync 必须通过 SSH 传输才能安全。
-
如果要传输大文件,并且传输在完成之前断开连接,rsync 会从中断的地方继续传输,而 scp 没有。
-
rsync 比较每一端的文件并只传输更改文件的更改部分,当你第一次传输文件时,它的行为与 scp 非常相似,但是对于大多数文件未更改的第二次传输,它推送的数据将比 scp 少得多。这也是一种重新启动失败传输的便捷方法,你只需重新发出相同的命令,它就会从上次中断的地方开始,而 scp 将从头开始。
总之,用scp比较多,因为它使用起来更简单。
对于重复性任务,如 cron 作业,请使用 rsync。如前所述,在多次调用时,它将利用已传输的数据,执行速度非常快并节省资源,它是在网络上保持两个目录同步的绝佳工具。
此外,在处理大文件时,请使用带有 -P 选项的 rsync。如果传输被中断,您可以通过重新发出命令从它停止的地方恢复它。
怎么样,一个小小的scp命令没想到居然有那么大学问吧!
文章来源: blog.csdn.net,作者:wljslmz,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/weixin_43025343/article/details/119413712
- 点赞
- 收藏
- 关注作者
评论(0)