scp
命令
scp
命令可以帮助我们远程建立连接并且完成文件传输。
scp
是 secure copy 的缩写, scp
是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。
scp
是加密的,rcp
是不加密的,scp
是 rcp
的加强版。
利用scp -q
隐藏进度条
利用scp -r
传输文件夹
实验一
我使用Mac os和虚拟机rhel8来完成实验。
你也可以在Windows环境下建立两个虚拟机,推荐centos8和rhel8来完成实验。
a)在Mac下建立实验素材用作主机。
- 打开终端。
- 利用
cd
命令切换至桌面,并使用touch
命令和mkdir
命令来创建文件以及文件夹。
b)测试
- 查看虚拟机的ip,使用命令
ip addr show
完成操作。
查看到虚拟机ip为10.211.55.4。
- 利用
scp
命令完成文件传输。 - 在Mac终端使用
scp westos root@10.211.55.4:/root/Desktop
- 输入密码后,完成操作
同理,使用scp -r
命令完成文件夹的传输操作。
- 在Mac终端使用
scp -r westosdir root@10.211.55.4:/root/Desktop
- 输入密码后,完成操作
在scp
命令的使用过程中,我们可以使用scp -q
命令来隐藏进度条。
实验二
我们也可以把远程主机的文件或文件夹利用scp
命令转移至本地。
a)创建文件。
- 在虚拟机中操作,使用touch命令创建文件haha。
b)转移文件
- 利用
scp 远程主机用户名@远程主机ip:远程文件地址 主机地址
命令来完成文件传输
rsync
命令
rsync
命令和scp
命令的对比
scp
是相当于复制,黏贴,如果有的话是覆盖,比较耗时间,不智能。
rsync
是复制,如果有重复的文件,会直接跳过,而且他自己的算法优化。
scp
是把文件全部复制过去,当文件修改后还是把所有文件复制过去,rsync
第一次是把所有文件同步过去,当文件修改后,只把修改的文件同步过去。
实验三
对比实验
1.利用dd
命令切割制定大小的文件三个,分别是10m,20m,和30m。
2.利用time
命令检测命令的执行时间。
但是由于直接使用time
命令会计算密码输入时间而造成误差,因此我们需要使用到免密登陆。
在真实主机中使用ssh-keygen
命令来创建公钥和私钥。
利用ssh-copy-id -i
命令来将公钥发送至虚拟机当中。
此时,远程连接主机将无需输入密码。
重新执行命令。
可以观察到,传输时间为0.609s。
使用vim命令编写脚本来多次纵向对比实验时间。
可见,三次实验时间近乎相同。
清空实验环境。
编写rsync
脚本实现相同实验
对比实验结果,发现后两次实验的时间明显少于前一次。得到结论,相较于scp
命令,rsync
命令会自动检查增量并保留,会自动优化算法,对已有的文件自动跳过。
rsync
用法
rsync 文件地址 远程主机用户名@远程主机ip:远程主机目录
如果我们需要将远程主机的文件复制到本地,需要执行以下操作。
rsync 远程主机用户名@远程主机ip:远程主机文件地址 本地地址目录
参数 | 效果 |
---|---|
-r | 复制目录 |
-l | 复制链接 |
-p | 复制权限 |
-t | 复制时间戳 |
-o | 复制拥有者 |
-g | 复制拥有组 |
-D | 复制设备文件 |
在rhel8中完成操作
默认情况下 Mac os中没有ll命令,但是我们可以自己写一个
创建连接
在目录后加/与不加的区别:
结果显示,不加/将会将文件夹一并复制。
-l 复制链接
-p 复制文件属性
-o复制拥有者 -g 复制文件拥有组
-t 复制文件时间戳
文件归档
在复制多个文件的时候,文件的复制时间会很长。将多个文件归档为一个文件,可以大大提高文件传输时的速度。
我们可以使用tar命令来归档文件
tar cf etc.tar /etc
我们还可以使用一下命令来添加文件进入打包
tar rf etc.tar file
同样,我们可以使用以下命令来解包
tar xf etc.tar
也可以使用以下命令来解出指定包
tar f ect.tar --get file
我们也可以使用以下命令来删除包内的指定文件
tar f ect.tar --delete file
我们也可以使用以下命令来将文件解档到指定路径
tar xf etc.tar -C /mnt
命令 | 含义 |
---|---|
c | 创建 |
f | 指定文件名称 |
x | 解档 |
t | 查看 |
r | 向归档文件中添加文件 |
–get | 解档指定文件 |
–delete | 删除指定文件 |
-C | 指定解档路径 |
文件的压缩
在Linux当中,集成了四种格式的压缩形式,他们分别是zip,gzip,bzip2,xz。
对于zip格式
zip -r etc.tar.zip etc.tar ##文件的压缩
unzip etc.tar.zip ##文件的解压缩
对于gzip格式
gzip etc.tar ##文件的压缩
gunzip etc.tar.gz ##文件的解压缩
对于bzip2格式
bzip2 etc.tar ##文件的压缩
bunzip2 etc.tar.bz2 ##文件的解压缩
对于xz格式
xz etc.tar ##文件的压缩
unxz etc.tar.xz ##文件的解压缩
tar+文件的压缩
对于文件的归档来说,支持的压缩格式没有zip。要格外注意。
tar zcf ect.tar.gz /ect
tar zxf ect.tar.gz
tar jcf ect.tar.bz2 /ect
tar jxf ect.tar.bz2
tar Jcf ect.tar.xz /ect
tar Jxf ect.tar.xz
以上命令分别对应文档的gzip格式,bzip 2格式,xz格式的压缩和解压。