Linux中系统的文件传输
实验环境
-
需要两台主机并且保证这两台主机可以通信,关掉火墙。
systemctl disable --now firewalld
scp
- 怎么将本地文件传输到远程主机;怎么将远程主机文件传输到本地
1、 scp 本地文件 远程主机用户@远程主机ip:远程主机目录的绝对路径 (把本地文件复制到远程主机)
2、scp 远程主机用户@远程主机ip:远程主机目录的绝对路径 本地文件 (把远程文件复制到本地)
3、scp -r 是传送目录
4、scp -q 是静默传输,不显示传输进度
##从主机向远程主机传输文件
##从远程主机到本机传输文件
- time **
date 仅仅能看日期,但是time date 可看出运行了多久
time cp westos westosdir 复制westos到westosdir且显示复制时间
rsync
-
rsync和scp的对比
1、创建比较大的文件dd if=/dev/zero of=bigfile bs=1M count=1000 ##创建一个超大文件 du -sh bigfile ##看一下他的大小
2、分别用scp和rsync传输文件,对比两者传输时间。
##利用scp命令对其进行传输三次,可以看出scp三次执行时间前后差不多平均
##利用rsync命令对其传输,我们可以看出rsync三次执行时间后两次远小于第一次
3、linux之间同步文件有两种方式rsync与scp。scp是完全备份而rsync是增量备份。sync和scp在文件夹均不存在时,执行时间相差不大,但是文件夹存在的情况下差异很大。若A主机文件不存在则新建,若存在则覆盖,可以理解为scp为“复制”。而rsync则在文件都存在于两主机时,比较两文件是相同的,相同的话,就什么都不做,若存在差异就直接更新。
-
rsync用法
1、rsync 用法rsync 文件 远程用户@远程主机ip:远程主机目录 rsync 远程用户@远程主机ip:远程主机目录 文件
2、
rsync -r ##复制目录 rsync -l ##复制链接 rsync -p ##复制权限 rsync -t ##复制时间戳 rsync -o ##复制拥有者 rsync -g ##复制拥有组 rsync -D ##复制设备文件
3、
watch -n 1 ls -lR /mnt ##在虚拟机中做出一个监控
建立素材
mkdir westosdir ##建立目录
touch westosdir/westosfile{1..5} ##建立文件
ln -s /home/westos/Desktop/westosdir/westosfile1 westosdir/test ##做出一个链接
练习
ssh root@172.25.254.109 'rm -rf /mnt/*' ##每次做完一个实验都应该删除
rsync -r westosdir root@172.25.254.109:/mnt/ ##传输目录
rsync -poglrt westosdir root@172.25.254.109:/mnt/ ##传输目录、链接、权限、拥有者、拥有组、时间戳
##做素材
##只是传输目录
##做实验时,要将之前建立的删掉之后再建立
文件的归档压缩
- 文件归档:把所要保存的东西装箱,易于保存,易于传输。
1、归档传输和不归档传输的区别
##不归档传输,文件比较多的时候会比较慢
##归档传输,传输速度快
##归档后的文件,看起来好像变小了,但是实际上没有变,只是把一些链接删掉了
2、 tar
##将每一个路径的/去掉了,防止覆盖,变成了相对路径
c ##创建
f ##指定文件名称
v ##显示过程
t ##查看
x ##解档
r ##向归档文件中添加文件
--get ##解档指定文件
--deletc ##删除指定文件
-C ##指定接档路径
-P ##不要移走/
##建立新的文件,将其归档到etc.tar中,再将其解档出来
##将文件规定到指定的目录之下
-
文件压缩
##电脑默认的压缩方式有四种 gz bz2 zip xz
1、zip格式压缩zip -r etc.tar.zip etc.tar ##将tar压缩为zip模式 unzip etc.tar.zip ##解压
##压缩后的文件的大小小于原文件
##解压的时候需要把压缩之前的那个文件删掉,不然会报错。
2、gz格式压缩
gzip etc.tar ##压缩
gunzip etc.tar.gz ##解压
3、bz格式压缩
bzip2 etc.tar ##压缩
bunzip2 etc.tar.bz2 ##解压
4、xz格式压缩
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