1.什么叫linux系统的文件传输?
在日常生活当中我们在两台主机之间拷贝东西使用u盘,这样比较麻烦。
在linux系统当中,为了方便起见,我们直接使用命令来拷贝文件。
2.搭建实验环境
在真机里面打开两台虚拟机并且配置网络
一台为Desktop主机,另一台为server主机

Desktop主机的ip为172.25.254.111

server主机的ip为172.25.254.211

3.文件传输命令
(1)一般命令:scp (一般使用scp命令在两个系统之间至直接拷贝文件比较慢)

 scp file user@ip:/dir     相当于上传(将自己主机上面的文件复制到远程主机上面)
 scp  user@ip:/file  dir   相当于下载(将远程主机上面的文件复制到自己的主机上面)

(2)远程同步命令:rsync

rsync(远程同步命令拷贝文件更快,rsync命令在linux里面好用,相当于远程镜像)
rsync  远程同步命令,速度快,但是会默认忽视文件属性、链接文件、设备文件

后面的参数如下表:

r

同步目录

p

同步权限

o

同步文件所有人

g

同步文件所有组

l

同步链接

D

同步设备文件

t

同步文件时间戳

注意:

当文件比较小时,scp和rsync传输文件的速度差不多
当文件比较大时,scp和rsync传输文件的速度相差很大
传输速度的快慢不是取决于文件的数量,而是取决于文件的大小
实验过程如下:

分清楚两台主机:(谁是谁)

如何将主机下面的数据拷贝到容器中 主机跟主机怎么拷贝_如何将主机下面的数据拷贝到容器中

将左边作为文件发送方,右边作为文件接收方
rsync -r 同步目录

如何将主机下面的数据拷贝到容器中 主机跟主机怎么拷贝_归档文件_02


rsync -p 同步权限

如何将主机下面的数据拷贝到容器中 主机跟主机怎么拷贝_文件大小_03

rsync -o 同步文件所有人

如何将主机下面的数据拷贝到容器中 主机跟主机怎么拷贝_如何将主机下面的数据拷贝到容器中_04

rsync -g 同步文件所有组

如何将主机下面的数据拷贝到容器中 主机跟主机怎么拷贝_文件大小_05

rsync -l 同步链接
(此链接相当于快捷方式 )
ln -s /mnt/westos1 /mnt/file

如何将主机下面的数据拷贝到容器中 主机跟主机怎么拷贝_归档文件_06


rsync -D 同步设备件

如何将主机下面的数据拷贝到容器中 主机跟主机怎么拷贝_如何将主机下面的数据拷贝到容器中_07

rsync -t 同步文件时间戳

如何将主机下面的数据拷贝到容器中 主机跟主机怎么拷贝_归档文件_08


注意:

    两个shell一个操作, 一个查看
    操作前先建立一些文件,确保传输的文件或者目录是存在的
    rsync这个命令传输会忽视一些东西,要加上这些东西必须在命令后面加参数才可以

4.什么是归档?
归档是把多个文件变成一个文件,也称将多个文件打包成一个文件

归档的目的:归档打包是为了文件在主机之间传输的更快
注意:

传输速度快不快取决于文件大小,并不是看文件数量的多少
打包不是压缩,文件大小并没有改变

tar 归档文件命令
tar命令后面的常用参数如下:

   -c   创建文档 (也叫创建一个包),必须加 
   -f   指定归档文件名称(就是指明把这个东西放到哪里,否则没有意义)必须加上-f,否则会乱码
   -v   显示打包的过程(显示都打包了哪些文件)
   -x   解档(将包解开)
   -t   查看归档文件内容(查看包中的内容)
   -r   添加文件到归档中(将别的文件放到这个包中)
   --get 解档指定文件(指定将哪个文件解出来)
   --delete  删除归档中的指定文件(指定删除文档中的哪个文件)
   -C    指定解档目录(指定将解出来的东西放到哪)
   tar  cf etc.tar /etc 表示将根目录下的etc这个目录打包成一个etc.tar 放到桌面

注意:弄清楚目录 ,要会切换目录,cf表示create file
tar的常用命令格式如下:

tar cf etc.tar /etc

如何将主机下面的数据拷贝到容器中 主机跟主机怎么拷贝_如何将主机下面的数据拷贝到容器中_09

tar cfv etc.tar /etc

如何将主机下面的数据拷贝到容器中 主机跟主机怎么拷贝_如何将主机下面的数据拷贝到容器中_10

touch file
tar cf etc.tar /etc file

如何将主机下面的数据拷贝到容器中 主机跟主机怎么拷贝_拷贝文件_11


touch file

tar cvf etc.tar /etc file

如何将主机下面的数据拷贝到容器中 主机跟主机怎么拷贝_文件大小_12


tar tf tec.tar

如何将主机下面的数据拷贝到容器中 主机跟主机怎么拷贝_文件大小_13


== touch file

tar cf etc.tar /etc

tar rf etc.tar file==

如何将主机下面的数据拷贝到容器中 主机跟主机怎么拷贝_文件大小_14

tar f etc.tar --delete file

如何将主机下面的数据拷贝到容器中 主机跟主机怎么拷贝_归档文件_15

tar xf etc.tar

如何将主机下面的数据拷贝到容器中 主机跟主机怎么拷贝_如何将主机下面的数据拷贝到容器中_16

tar f etc.tar --get etc

如何将主机下面的数据拷贝到容器中 主机跟主机怎么拷贝_归档文件_17

tar xf etc.tar -C /mnt/

如何将主机下面的数据拷贝到容器中 主机跟主机怎么拷贝_归档文件_18


tar cf /mnt/etc.tar /etc

如何将主机下面的数据拷贝到容器中 主机跟主机怎么拷贝_如何将主机下面的数据拷贝到容器中_19

5.压缩
linux下的压缩格式一共有4种 : zip 压缩 、gz压缩、bz2压缩、xz压缩
 压缩对于来说i大文件更明显,压缩时间长效果更明显
包括:先打包再压缩;打包的同时压缩,解压
每次压缩前后使用du -sh 目录名, 查看大小,进行对比

注意问题:打包的时候不算链接(快捷方式的大小) 但是du -sh这个命令查看大小会算上链接的大小
此实验用真机控制一台虚拟机,在真机的shell里面输入打包命令,效果显示在虚拟机的图形截面上
因此du -sh /etc/ 与du -sh etc.tar大小不同

(1)zip 压缩:
格式:
zip -r xxx.tar.zip xxx.tar 将后面已经打包的文件压缩成前面的文件格式

如何将主机下面的数据拷贝到容器中 主机跟主机怎么拷贝_文件大小_20

unzip xxx.tar.zip 将这个压缩文件解压

如何将主机下面的数据拷贝到容器中 主机跟主机怎么拷贝_归档文件_21

(2)gz压缩:
格式:
gzip xxx.tar 直接压缩后面的打包文件

如何将主机下面的数据拷贝到容器中 主机跟主机怎么拷贝_文件大小_22

gunzip xxx.tar.gz 解压

如何将主机下面的数据拷贝到容器中 主机跟主机怎么拷贝_文件大小_23


tar zcf xxx.tar.gz /xxx 打包的同时压缩

如何将主机下面的数据拷贝到容器中 主机跟主机怎么拷贝_归档文件_24

tar zxf xxx.tar.gz 解压

如何将主机下面的数据拷贝到容器中 主机跟主机怎么拷贝_拷贝文件_25

(3)bz2压缩:
格式:
bzip2 xxx.tar 直接压缩打包的文件

如何将主机下面的数据拷贝到容器中 主机跟主机怎么拷贝_文件大小_26

bunzip2 xxx.tar.bz2 解压

如何将主机下面的数据拷贝到容器中 主机跟主机怎么拷贝_文件大小_27


tar jcf xxx.tar.bz2 /xxxx 打包的同时压缩

如何将主机下面的数据拷贝到容器中 主机跟主机怎么拷贝_文件大小_28

 tar jxf xxx.tar.bz2 解压

如何将主机下面的数据拷贝到容器中 主机跟主机怎么拷贝_文件大小_29

(4)xz压缩:
格式:
xz xxx.tar 直接压缩打包文件

如何将主机下面的数据拷贝到容器中 主机跟主机怎么拷贝_文件大小_30

unxz xxx.tar.xz 解压

如何将主机下面的数据拷贝到容器中 主机跟主机怎么拷贝_归档文件_31


tar Jcf xxx.tar.xz /xxx 打包的同时压缩

如何将主机下面的数据拷贝到容器中 主机跟主机怎么拷贝_文件大小_32


tar Jxf xxx.tar.xz 解压

如何将主机下面的数据拷贝到容器中 主机跟主机怎么拷贝_拷贝文件_33

结论:通过对比4种压缩后的文件大小可知, zip 压缩 、gz压缩、bz2压缩、xz压缩的压缩效果越来越好