Linux 中系统的文件传输

实验环境

需要两台主机并且保证这两台主机可以通信,并且要关闭被连接主机的火墙。

关闭火墙可以用到以下命令:
systemctl disable --now firewalld
systemctl stop firewalld

1. scp

在日常的工作中,我们对于服务器的维护最基本的就是怎么将本地文件传输到远程主机,怎么将远程主机文件传输到本地。

scp 本地文件 远程主机用户@远程主机ip:远程主机目录的绝对路径 (把本地文件复制到远程主机)
scp 远程主机用户@远程主机ip:远程主机目录的绝对路径 本地文件 (把远程文件复制到本地)

1.1 把本地文件复制到远程主机实验步骤(上传):

  • 在当前主机上用 touch 命令和 mkdir 命令分别建立文件和目录;建立 file1 文件和 westosdir 目录,并且在目录中建立 westosdir {1…5} 的5个文件。
  • 测试
    1) 把本地文件复制到远程主机
    输入命令 scp file1 root@192.168.122.111:/root/Desktop, 即可把当前主机中的 file1 文件复制到远程111 主机的桌面上。

如图所示,远程111 主机之前桌面上没有东西,在传输之后可以看到远程主机桌面上的file1 文件。

2) 把本地目录复制到远程主机
输入命令 scp -r westosdir root@192.168.122.111:/root/Desktop,即可把当前主机上的 westosdir 目录复制到远程111号主机中,其中参数 -r 表示复制目录。

在这里插入图片描述

如图所示,远程 111 主机之前桌面上没有目录,在传输之后可以看到远程主机桌面上的 westosdir 文件。

3) 传输文件时不显示传输速度
在上传目录和文件的时候,我们可以看到传输速度,如果当前操作不想看到传输进度;可以在执行命令的时候加上 -q 的参数。输入 scp -qr westosdir root@192.168.122.111:/root/Desktop 。

在这里插入图片描述
如图所示,先删除远程主机中的 westosdir 目录,在传输的时候加上参数 -q 在传输的时候就不再显示传输进度。

1.2 把远程主机文件复制到本地实验步骤(下载):

  • 除了将本地文件复制到远程主机之外,还可以将远程主机中的文件复制到当前主机。在这个过程中,在远程主机上先删除桌面上的所有文件,再建立 linuxfie1 以方便看到其实验结果。
  • 测试
    输入命令 scp root@192.168.122.111:/root/Desktop/linuxfie1 . 表示将远程111 主机桌面上的linuxfie1 文件复制到当前。

在这里插入图片描述
如图所示,当前主机位置之前没有 linuxfile1 文件,在执行命令之后,当前主机的 linuxfile1 文件。

1.3 time 命令

在系统中执行一个命令时,我们往往不知道这个命令的执行用了多长时间,可以在要执行的命令前加上 time 命令, 便可以知道执行这个命令用来多长的时间。
如输入命令 time cp westosdir linuxdir 把 westosdir 复制到 linuxdir 并且显示复制的时间。

在这里插入图片描述

2. rsync

在做这个实验之前我们先和远程主机之间做好免密认证

ssh-keygen ## 生成密钥
ssh-copy-id -i /root/.ssh/id_rsa.pub. root@192.168.122.111 将公钥给予111主机。

在这里插入图片描述

2.1 rsync和scp的对比

rsync 是增量备份,scp 是完全备份。

实验步骤:

  • 创建比较大的文件
    由于当前系统中暂无新建立的比较大的文件,因此用命令 dd if=/dev/zero of=AAAfile bs=1M count=500 创建一个比较大的文件,此命令的意思是从 /dev/zero 文件中切割文件并存储在 AAAfile 的文件中,每次切割1M ,切割500次。

用命令 du -sh AAAfile 查看 AAAfile 文件的大小为511M。

在这里插入图片描述

  • 创建测试 scp 的脚本
    time scp -q AAAfile root@192.168.122.111:/root/Desktop
    time scp -q AAAfile root@192.168.122.111:/root/Desktop
    time scp -q AAAfile root@192.168.122.111:/root/Desktop
    表示将 AAAfile 这个文件复制到111主机的桌面上,复制了三次,并且显示每次复制的时间。
    执行命令 sh text.sh

    在这里插入图片描述
    从图片中可以看到三次复制基本上没有什么比较大的时间差异;

  • 创建测试 rsync 的传输时间
    time rsync -aCq AAAfile root@192.168.122.111:/root/Desktop
    time rsync -aCq AAAfile root@192.168.122.111:/root/Desktop
    time rsync -aCq AAAfile root@192.168.122.111:/root/Desktop
    表示将 AAAfile 这个文件复制到111主机的桌面上,复制了三次,并且显示每次复制的时间。
    执行命令 sh text.sh

    在这里插入图片描述
    如图所示,3次复制中只有第一次执行时间比较长和scp 的时间差不多,而后面的两次时间大大降低,这是因为 rsync 执行的是增量备份,后面两次只是系统检测111主机中有无该文件的时间,并不是复制的时间。

2.2 rsync 命令的用法

  • rsync 和 scp 一样,也可以上传和下载
  • rsync 文件 远程用户@远程主机ip:远程主机目录
  • rsync 远程用户@远程主机ip:远程主机目录 文件路径
命令意义
rsync -r复制目录
rsync -l复制链接
rsync -p复制权限
rsync -t复制时间戳
rsync -o复制拥有者
rsync -g复制拥有组
rsync -D复制设备文件

做这个实验的时候,为了方便观察实验效果,在连接远程主机中输入命令 watch -n 1 ls -lR /mnt 开一个监控。

在这里插入图片描述
实验步骤
建立实验所需的文件和目录,建立一个 westosdir 的目录,在这个目录中建立 file1 - file5 共五个文件。并给其中的一个文件做上链接,此处是用命令 ln -s /hoom/westos/Desktop/westosdir/file1 westosdir/test ,时将 file1 文件链接到 test 上。如图所示,为操作过程。

在这里插入图片描述

1)在当前主机中输入命令 rsync -r westosdir/ root@192.168.122.111: /mnt/ ,表示将当前主机上的 westosdir 目录中的文件复制到远程111主机的 /mnt/ 目录中,不复制目录本身;

在这里插入图片描述

2)在当前主机中输入命令 rsync -r westosdir/ root@192.168.122.111: /mnt/ ,表示将当前主机上的 westosdir 目录及目录中的文件复制到远程111主机的 /mnt/ 目录中;

在这里插入图片描述

3)在当前主机中输入命令 rsync -lr westosdir root@192.168.122.111: /mnt/ 表示将当前主机上的 westosdir 目录及其目录中的链接复制到远程111主机的 /mnt/ 目录中;

在这里插入图片描述
4)输入命令 chmod 777 westosdir /* 表示将目录中的文件的权限修改为 777;在当前主机中输入命令 rsync -plr westosdir root@192.168.122.111: /mnt/ 表示将当前主机上的 westosdir 目录和目录中的链接和权限复制到远程111主机的 /mnt/ 目录中;

在这里插入图片描述

5)在当前主机中输入命令 rsync -poglr westosdir root@192.168.122.111: /mnt/ 表示将当前主机上的 westosdir 目录及其目录中的链接权限和所有人和所有组都复制到远程111主机的 /mnt/ 目录中;

在这里插入图片描述
6)在当前主机中输入命令 rsync -poglrt westosdir root@192.168.122.111: /mnt/ 表示将当前主机上的 westosdir 目录的链接、权限、所有人、所有组和建立时间都复制到远程111主机的 /mnt/ 目录中;

在这里插入图片描述
7)在当前主机中输入命令 rsync -poglrtD /dev/pts/ root@192.168.122.111: /mnt/ 表示将当前主机上的 /dev/pts/ 目录的链接、权限、所有人、所有组、建立时间和设备文件都复制到远程111主机的 /mnt/ 目录中;

在这里插入图片描述

3. 文件的归档压缩

3.1 文件归档

tar

参数含义
c创建
f指定文件名称
x解档
v显示过程
t查看
r向归档文件中添加文件
- -get解档指定文件
- -delete删除指定文件
C指定解档路径
Pdon’t remove “/”

实验步骤:
1)输入命令 tar cf etc.tar /etc/ ,表示 /etc/ 下的文件归档到创建的etc.tar 文档中去;

在这里插入图片描述

2)输入命令 tar cvf etc.tar /etc/ ,表示 /etc/ 下的文件归档到创建的etc.tar 文档中去,并将这个过程显示出来;

在这里插入图片描述

3)输入命令 tar tf etc.tar ,表示指定名称为 etc.tar 的文件查看该文件;

在这里插入图片描述

4)输入命令 tar xf etc.tar ,表示将指定的名称 etc.tar 的文件解档;

在这里插入图片描述

5)新建一个文件名称为 file123123 的文件,输入命令 tar rf etc.tar file123123 ,表示将新建的 file123123 文件添加到 etc.tar 的文档中;

在这里插入图片描述

在这里插入图片描述
6)输入命令 tar f etc.tar --delete file123123 ,表示将归档文档中的 file123123 文件删除;

在这里插入图片描述
7)输入命令 tar xf etc.tar -C /root/ ,表示将归档的文档解档到指定的目录 /root/ 目录中;

在这里插入图片描述

3.2 文件的压缩

文档压缩的格式有 gz 、bzip2(bz2)、 zip、 xz、 rar,但是 rar 是在闭源中才会有的,在linux 中没有。

1) zip 格式的压缩和解压缩

  • zip -r etc.tar.zip etc.tar #zip格式压缩
  • unzip etc.tar.zip #zip格式解压缩

在这里插入图片描述如图所示,压缩之前的文档大小为 28M ,压缩之后的文档大小为6.8M;

在这里插入图片描述unzip 在解压缩的时候,压缩文件不能存在,要是存在解压的时候会报错;unzip 解压之后之前的压缩包还存在;

2) gzip 格式的压缩和解压缩

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

用gz 压缩之后的文件大小也为 6.8M; gunzip 解压的之后,压缩包就成了解压后的文件;

在这里插入图片描述

3 ) bzip2 格式的压缩和解压缩

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

用bzip2 压缩后的文件大小为5.2M ;用 bunzip2 解压之后,压缩包就成了解压后的文件;

在这里插入图片描述
4)xz 格式的压缩和解压缩

  • xz mnt.tar #xz格式压缩
  • unxz mnt.tar.xz #xz格式解压缩

用xz 压缩后的文件大小为4.5 M ;用 unxz 解压之后,压缩包就成了解压后的文件;
在这里插入图片描述

3.3 tar+压缩

打包压缩一步完成

1) gzip 格式的打包压缩和解压缩
tar zcf etc.tar.gz /etc
tar zxf etc.tar.gz

2) bzip2 格式的打包压缩和解压缩
tar jcf etc.tar.bz2 /etc
tar jxf etc.tar.bz2

3)xz 格式的打包压缩和解压缩
tar Jcf etc.tar.xz /etc
tar Jxf etc.tar.xz

三种格式的打包压缩过程操作如下:

在这里插入图片描述
三种压缩格式的解压缩操作如下:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
:用打包压缩的形式将文件打包,除了用相应的打包解压的方式解压,还可以用上述相应格式的解压方式解压;两者不同之处在于,打包解压不会丢失原有的压缩包,而对应的解压方式是将压缩包解压为文件,压缩包就没有了。

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值