在系统间传输文件
目标
使用scp、rsync命令进行传输文件
名词定义
- 什么是SCP?
Linux scp 命令用于 Linux 之间复制文件和目录。
scp 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。
scp 是加密的,rcp 是不加密的,scp 是 rcp 的加强版。
- SCP命令选项
语法
scp 选项 文件或目录 远程地址:对应路径scp package.tar.gz root@192.168.1.116:/usr/local/src参数说明:
-B: 使用批处理模式(传输过程中不询问传输口令或短语)
-C: 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
-p:保留原文件的修改时间,访问时间和访问权限。
-q: 不显示传输进度条。
-r: 递归复制整个目录。
-v:详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
-l limit: 限定用户所能使用的带宽,以Kbit/s为单位。
-P port:注意是大写的P, port是指定数据传输用到的端口号
- 什么是rsync?
sync is a fast and extraordinarily versatile file copying tool for both remote and local files.
Rsync uses a delta-transfer algorithm which provides a very fast method for bringing remote files into sync. It does this by sending just the differences in the files across the link, without requiring that both sets of files are present at one of the ends of the link beforehand. At first glance this may seem impossible because the calculation of diffs between two files normally requires local access to both files.
sync 是一种快速且用途广泛的文件复制工具,适用于远程和本地文件。
Rsync 使用增量传输算法,该算法提供了一种非常快速的方法来使远程文件同步。 它通过仅通过链接发送文件中的差异来做到这一点,而无需事先将两组文件都存在于链接的一端。 乍一看,这似乎是不可能的,因为计算两个文件之间的差异通常需要对这两个文件进行本地访问。
实操演示
- 传输一个文件到指定服务器
[root@jenkins src]# scp package.tar.gz root@192.168.1.116:/usr/local/src
root@192.168.1.116's password:
package.tar.gz 100% 147MB 8.2MB/s 00:18
##将package.tar.gz文件传输到1.116服务器指定路径
[root@jenkins src]# scp -r tmp root@192.168.1.116:/usr/local/src
root@192.168.1.116's password:
grafana-enterprise-8.4.5-1.x86 100% 81MB 8.1MB/s 00:10
jenkins-2.277.2-1.1.noarch.rpm 100% 67MB 8.4MB/s 00:08
##将tmp文件夹传输到1.116服务器指定路径
- 查看归档文件内容
[root@jenkins src]# tar -tf package.tar.gz
grafana-enterprise-8.4.5-1.x86_64.rpm
jenkins-2.277.2-1.1.noarch.rpm
##查看归档文件内容
- 解压归档文件
[root@jenkins src]# tar xf package.tar.gz
[root@jenkins src]# ls
grafana-enterprise-8.4.5-1.x86_64.rpm package.tar.gz
jenkins-2.277.2-1.1.noarch.rpm
- 解压文件到指定文件夹
[root@jenkins src]# mkdir tmp
[root@jenkins src]# tar -xf package.tar.gz -C tmp/
[root@jenkins src]# ls tmp/
grafana-enterprise-8.4.5-1.x86_64.rpm
jenkins-2.277.2-1.1.noarch.rpm
##将package.tar.gz文件解压到tmp文件夹下