文件传输
实验主机设置
这里我配置了两台主机ip
rhel7-work 主机中IPADDR:192.168.0.10
rhel8-work 主机中IPADDR:192.168.0.20
我安装了两个版本的系统,rhel7和rhel8,实验我会放在rhel8版本里操作
scp传输服务
使用命令
上传:scp 本地文件/目录 远程主机用户@远程主机IP:远程主机目录
下载:scp 远程主机用户@远程主机IP:远程主机目录/文件 本地目录
参数
参数 | 作用 |
---|---|
-r | 传输目录 |
-q | quite,忽略传输过程 |
实验展示
在rhel8-work中创建文件
完成后我们测试上传命令
在rhel7-work中来查看文件是否存在
可以看到文件已经成功传输到了rhel7-work主机中
对于目录传输,我们使用-r参数来操作
如果想忽略掉这些传输过程,加上-q参数
以上就是对文件上传scp命令的操作,下载的操作就是将顺序反过来
在rhel7-work中创建文件并写入内容
然后在rhel8-work中使用scp命令将这个文件下载过来,并查看文件
scp命令下载的参数使用和效果,是同上传一样的
rsync传输服务
使用命令(类似scp)
上传:rsync 本地文件/目录 远程主机用户@远程主机IP:远程主机目录
下载:rsync 远程主机用户@远程主机IP:远程主机文件/目录 本地目录
参数
参数 | 作用 |
---|---|
-r | 传输目录 |
-l | 链接复制 |
-o | 拥有者复制 |
-g | 拥有组复制 |
-t | 时间戳复制 |
-D | 设备复制 |
-p | 权限复制 |
实验操作
因为rsync命令传输过程中会自动的跳过设备文件、链接,所以我们先在创建一个链接,复制/dev/的设备文件到/mnt/里,同时我们也更改目录里所有人所有组和文件的权限,检测实验效果
建立完成后我们来测试rsync命令
可以看到我们传输文件出现了跳过,跳过的就是我们的快捷方式链接以及设备文件,并且rsync命令中传输的目录/mnt后面是否有“/”也是有不同,如果是“/mnt”这样就是传输目录及目录中的内容,“/mnt/”就是只传输文件中的内容。
然后我们测试“/mnt/”
这样就展示出了区别
下来我们测试其他的参数:
-l
-D
-o -g
-p
-t
以上就是rsync传输服务的使用方法介绍
scp与rsync传输服务的区别
两者区别在于scp传输服务在数据传输中是无差别复制,不会去考虑目的路径里是否存在该文件,而是完全的去复制,如果存在相同文件会覆盖;
rsync传输服务可以在传输过程中去检查目的路径是否存在该文件,如果有相同的文件会自动略过减少时间。
针对这个问题我们用实验来解释,实验操作:
我们先截取一些数据作为传输素材,命令:dd if=/dev/zero of=/mnt/test1 bs=1M count=10
这个命令就是从/dev/zero里截取10块每块大小1Mb的数据放进/mnt/test1中,我们截取两份
然后我们编辑两个快捷执行命令的文件,分别给是scp和rsync的
我们写入了3次命令,就是连续传输3次来对比时间,。此外还需要设置一个免密登录避免手动输入密码产生的时间,这个设置在sshd服务中有讲解这里不多解释,直接执行命令
[root@rhrl8-work Desktop]# ssh-keygen
[root@rhrl8-work Desktop]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.0.10
完成准备工作后我们开始实验对比
从两个命令的三次传输结果来看,
scp命令执行的过程就是一次次的复制再覆盖,不考虑文件是否已存在,所以系统的执行时间来看会在一个区间内,毕竟每次cpu的处理不会完全一样;
rsync命令执行时就可以看到在第一传输完后,后面两次的传输用时都极短,因为在第一次传输完成后,之后的命令执行时检测到已存在相同文件就会自动跳过。
文件的打包压缩服务
tar文件打包服务
打包本身的意思就是将很多散落的目录文件整合在一起,
命令就是: tar 参数 打包文件命 打包内容
参数说明
参数 | 说明 |
---|---|
c | 建立打包文件 |
f | 指定打包文件名称 |
t | 查看打包文件里的内容 |
r | 添加文件进打包文件 |
P | 保留打包文件的绝对路径,也可以恢复到绝对路径 |
x | 拆开打包文件 |
-C | 选择解绑路径 |
- -get | 拆开指定文件 |
- -delet | 删除指定文件 |
实验操作
我们选择/etc这个目录来测试
参数cf,创建一个指定名字的打包文件,并且这个打包是自动忽略文件的绝对路径
因为我执行命令是在桌面,可以看到生成像盒子一样的文件和里面的内容,就是我们的打包文件。
如何将桌面上另一个文件加入这个打包盒呢
使用参数 “r” 添加文件,我们也可以通过参数 “t” 来查看打包的文件内容
在打包时如果想要保留文件的绝对路径,加参数 “P”
可以看到和之前相比文件内容都带有 / ,用 “x” 拆解时还是会自动忽略绝对路径
拆解后etc目录自动到当前路径桌面上,并未回到绝对路径,如果要拆解到绝对路径给参数 “xf” 加上 “P” 就可以,但是一般为了系统安全不会则么作,因为拆解到绝对路径如果文件出现损害会是系统出问题。
还有参数 “-C” ,拆解时指定路径
–get,拆开指定文件
–delet,删除打包盒里的指定文件
文件压缩服务
Linux中,开源的压缩服务有 zip、gzip、bzip、xz 几种方式
zip
命令:
压缩: zip -r 压缩出的文件名 要压缩的目录
解压: unzip 压缩的文件名
压缩后原文件,依然存在,解压时需要删除原文件不然会报错
unzip解压缩
gzip
命令:
压缩:gzip 要压缩的目录
解压:gunzip 压缩的文件名
压缩后原文件会消失,而且压缩的比例更高,然后解压缩
bzip
压缩:bzip2 要压缩的目录
解压:bunzip2 压缩的文件名
压缩后原文件会消失,而且压缩的比例比前面两种更高,然后解压缩
xz
压缩:bzip2 要压缩的目录
解压:bunzip2 压缩的文件名
xz的压缩等待时间更长,但压缩比例相比其他三个最高,然后解压
tar命令和压缩同时使用
如何一步完成打包压缩呢,我们可以用 man tar查看用法、
里面介绍了使用bzip、gzip、xz的压缩使用参数,可以看到是不支持zip格式的压缩的
参数 | 说明 |
---|---|
j | bzip |
J | xz |
z | gzip |
实验操作
以上就是3种参数对应的压缩的操作