9.linux中的文件传输
前言
一、实验环境配置
关闭虚拟机客户端和服务端的图形模式
systemctl set-default mu(会补齐)
init 3 以无图的方式运行虚拟机
在主机上可以远程连接虚拟机 ctrl+shift+t 在一个shell中打开多个tab
ssh root@172.25.254.139/239
开启客户端与服务端免密传输
测试:传输文件不需要密码
二、文件传输
scp 上传:scp 要上传文件的绝对路径 root@172.25.254.139:原文件所在绝对路径 会改变元数据(时间)
scp /mnt/westos1 root@172.25.254.139:/mnt
scp -q /mnt/westos2 root@172.25.254.139:/mnt/-q quiet 静默传输 传输不显示提示
scp -r /mnt/westosdir root@172.25.254.139:/mnt/-r 传输目录
scp 下载:scp root@172.25.254.109:/要下载文件的绝对路径 下载到本机哪儿的绝对路径
-p 不会改变元数据(时间)
scp传递没有增量,即使存在也会完整传输;不会做增量检测
rsync 传输前会做增量检测
测试:
dd if=/dev/zero of=/mnt/westos1 bs=1M count=500 创建大文件,每块1M 一共500块,为传输做准备
du -sh /mnt/westos1 du -sh 读取文件大小 du westos也可以 而且du更加精确
编写脚本1.sh 运行脚本让westos传输三次,并且记录每次时间
可以看到三次传输时间相差不多,
修改脚本,使用rsync进行传输
time rsync -aCq /mnt/westos1 root@172.25.254.109:/mnt 增量传送并且查看时间
-a 对数据进行压缩
-C 数据相同的内容自动检测
-q 静默传输
man rsync 查看rsync怎么用
明显看到,第二次第三次只做了增量检测,文件并未改动,所以传输时间相比第一次大大降低。
- rsync 注意:/mnt传送的是整个文件夹,/mnt/传送的时文件夹里的内容
先创建好测试文件,更改权限和用户组,建立链接(ln -s westos westosfile),ll查看所有属性。
-r 复制目录
-l 复制链接
-t 复制时间戳
-o 复制拥有者
-g 复制拥有组
-D 复制设备文件 /dev/pts/
三、文件归档压缩
1.文件归档
- tar 文件归档
c 创建
f 指定文件名称
tar cf etc.tar /etc
v 显示过程
tar xf etc.tar
t 查看
tar tf etc.tar
r 向归档文件中添加文件
–get 解档指定文件
向归档文件中添加westos文件再解档
–delete 删除指定文件
-C 指定解档路径
-P 不会去掉‘/’ 慎用,会覆盖掉之前的文件
2.文件压缩
压缩格式:zip 、gzip 、bzip2 、xz
zip -r :zip -r etc.tar.zip etc.tar 将etc.tar压缩成zip格式
文件明显变小。
unzip:unzip etc.tar.zip 解压
gzip: gzip etc.tar
gunzip:gunzip etc.tar
bzip2 etc.tar
bunzip2 etc.tar.bz2
xz etc.tar
unxz etc.tar.xz
归档压缩一起:
tar zcf etc.tar.gz /etc
tar jcf etc.tar.bz2 /etc
tar Jcf etc.tar.xz /etc
总结
本章主要学习了远程文件传输,文件归档与文件压缩。