Linux系统基础(9)--文件传输

实验环境:

需要两台处于同一网段的虚拟机:
client : 172.25.254.10
server : 172.25.254.20

一.SCP命令

SCP命令的主要作用是实现Linux与Linux系统之间的文件传输。
SCP命令时基于SSH协议,所以两台服务器的sshd服务必须处于开启状态,否则无法完成上传与下载操作。

#1.上传文件
scp linux本地文件路径 远程用户名@linux主机地址:远程路径
#2.下载文件
scp 远程用户名@linux主机地址:资源路径  linux本地文件路径

常用选项:
-r		#递归操作
-q		#静默传输
-P		#指定端口 如果修改了ssh的端口需要加上这个参数

案例:将client服务器的/mnt/test文件上传到server服务器的/root目录下

#在client端
scp /mnt/test root@172.25.254.20:/root/

案例:将server服务器的/mnt/test文件下载到client服务器的/root目录下

#在client端
scp root@172.25.254.20:/mnt/test /root/

二.rsync命令

rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。rsync只传送两个文件不同的部分,而不是每次都整份传送,因此速度相当快。但是当小文件众多的情况下,rsync会导致硬盘I/O非常高。

rsync linux本地文件路径 远程用户名@linux主机地址:远程路径
rsync 远程用户名@linux主机地址:资源路径 linux本地文件路径
常用选项:
-r			#递归复制
-l          #复制链接
-p          #复制权限
-t          #复制时间戳
-o          #复制拥有者
-g          #复制拥有组
-D          #复制设备文件

三.scp与rsync对比

dd命令

dd if=/dev/zero of=文件名称 bs=1M count=1
#说明:
if代表输入文件
of代表输出文件
bs代表字节为单位的块大小。
count代表被复制的块。
其中/dev/zero是一个字符设备,会不断返回0值字节。
  1. 建立实验素材
dd if=/dev/zero of=/mnt/file1 bs=1M count=10
dd if=/dev/zero of=/mnt/file2 bs=1M count=20
dd if=/dev/zero of=/mnt/file3 bs=1M count=30

以上分别建立了三个文件大小分别为10M 20M 30M

  1. 在server中配置ssh免密连接
ssh-keygen
ssh-copy-id -i /root/.ssh/id_rsa.pub. root@172.25.254.20
  1. 使用脚本测试传输时间
vim /mnt/test.sh
time scp -qr /root/Desktop root@172.25.254.20:/root/Desktop
time scp -qr /root/Desktop root@172.25.254.20:/root/Desktop
time scp -qr /root/Desktop root@172.25.254.20:/root/Desktop
vim /mnt/test1.sh
time rsync -raCq /root/Desktop root@172.25.254.20:/root/Desktop
time rsync -raCq /root/Desktop root@172.25.254.20:/root/Desktop
time rsync -raCq /root/Desktop root@172.25.254.20:/root/Desktop
  1. 执行以上脚本后会发现使用scp命令三次时间几乎一致,而用rsync命令后两次时间远小于第一次。
    这是因为scp是相当于复制,黏贴,如果有的话是覆盖,比较耗时间,不智能。rsync 第一次是把所有文件同步过去,当文件修改后,只把修改的文件同步过去。

四.文件的归档和压缩

1.打包归档的概念

打包:默认情况下,Linux的压缩概念一次只能压缩一个文件。针对多文件或文件夹无法进行直接压缩。所以需要提前对多个文件或文件夹进行打包,这样才可以进行压缩操作。

tar [选项]  打包后的名称.tar  多个文件或文件夹
[选项]:
-c				#打包
-v				#显示打包的进度
-f				#指定打包后的文件名称

-t				#查看打包的文件内容

-r				#向归档文件中添加文件

-x				#解档

-u				#update缩写,更新原打包文件中的文件

--get			#解档指定文件
--delete		#删除指定文件
-C				#指定解档路径

案例:把a.txt、b.txt、c.txt文件打包到abc.tar文件中

tar -cvf abc.tar a.txt b.txt c.txt

案例:把etc文件夹进行打包etc.tar

tar -cvf etc.tar /etc/

案例:查看etc.tar中内容

tar -tf etc.tar

案例:向etc.tar中添加文件

tar -rf etc.tar test1         

案例:将etc.tar解档

tar -xf etc.tar 

案例:解档指定文件

tar -f etc.tar --get test1

案例:删除指定文件

tar -f etc.tar --delete test1

案例:指定解档路径

tar -xf etc.tar -C /root/Desktop

2.压缩文件

zip格式压缩

zip -r etc.tar.zip mnt.tar		#zip格式压缩 -r递归
unzip etc.tar.zip				#zip格式解压缩
可加选项:
-d			#解压到指定路径下

Tips:zip格式在Windows以及Linux中都可以使用。

gzip

gzip etc.tar 					#gzip格式压缩
gunzip etc.tar.gz				#gzip格式解压缩

bzip

bzip2 etc.tar					#bzip2格式压缩
bunzip2 etc.tar.bz2				#bzip2格式解压缩

xz

xz etc.tar						#xz格式压缩
unxz etc.tar.xz					#xz格式解压缩

压缩速度:gzip > bzip2 > xz
压缩率:gzip < bzip2 < xz

3.打包+压缩

-z	:使用gzip压缩工具把打包后的文件压缩为.gz
-j  :使用bzip2压缩工具把打包后的文件压缩为.bz2
-J	:使用xz压缩工具把打包后的文件压缩为.xz

#gzip
tar -zcf etc.tar.gz /etc
tar -zxf etc.tar.gz
 
#bzip2
tar -jcf etc.tar.bz2 /etc
tar -jxf etc.tar.bz2
 
#xz
tar -Jcf etc.tar.xz /etc
tar -Jxf etc.tar.xz
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值