Linux系统中的文件传输
1.文件复制与下载
实验环境
2台主机并且保证这两台主机是可以通信的
- client_westos.test.com 172.25.254.10
- sever_node1.westos.com 172.25.254.20
scp命令
scp 本地文件 远程主机用户@远程主机ip:远程主机目录的绝对路径
scp 远程主机用户@远程主机ip:远程主机文件的绝对路径 本地文件
实验步步骤:
- 在node1 主机建立实验素材
touch westos
mkdir westosdir
- 测试
a)把本地文件复制到远程主机 (上传)
scp westos root@172.25.254.20:/root/Desktop
scp -r westosdir root@172.25.254.20:/root/Desktop # -r 表示复制 目录
scp -q westos root@172.25.254.20:/root/Desktop # -q 传输文件时不显示进度
b)把远程文件复制到本地(下载)
scp root@172.25.254.20:/root/Desktop/westos_rhel8 /root/Desktop
rsync 命令
a) rsync和scp命令的对比
实验素材:
dd if=/dev/zero of=/root/Desktop/westosfile1 bs=1M count=10 块,
if=inputfile
of=outputfile
bs=blocksize
count=块
dd if=/dev/zero of=/root/Desktop/westosfile2 bs=1M count=20
dd if=/dev/zero of=/root/Desktop/westosfile3 bs=1M count=30
2)在主机之间建立免密登陆使远程文件传输可以直接执行
ssh-keygen # 生成密钥 (node1中)
ssh-copy-id -i /root/.ssh/id_rsa.pub. root@172.25.254.20
3)创建测试脚本
vim check_scp.sh #检测scp传输时间
time scp -qr /root/Desktop root@172.25.254.20:/root/Desktop
time scp -qr /root/Desktop root@172.25.254.20:/root/Desktop
time scp -qr /root/Desktop root@172.25.254.20:/root/Desktop
vim check_rsync.sh #检测rsync的传输时间
time rsync -raCq /root/Desktop root@172.25.254.20:/root/Desktop
time rsync -raCq /root/Desktop root@172.25.254.20:/root/Desktop
time rsync -raCq /root/Desktop root@172.25.254.20:/root/Desktop
4)执行
![](https://img-blog.csdnimg.cn/20200430200234494.png)
![](https://img-blog.csdnimg.cn/20200430200322592.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0RvRG84MzcxMzI4NjM=,size_16,color_FFFFFF,t_70)
以上执行效果我们可以看出rsync三次执行时间后两次远远小与第一次 !!!
b)rsync用法
rsync 文件 远程用户@远程主机ip:远程主机目录
rsync 远程用户@远程主机ip:远程主机目录 文件路径
rsync 命令
- -r #复制目录
- -l #复制链接
- -p #复制权限
- -t #复制时间戳
- -o #复制拥有者
- -g #复制拥有组
- -D #复制设备文件
实验环境:
在rhel8中
watch -n 1 ls -lR /root/Desktop
在rhel7中
touch /root/Desktop/file{1..5}
chmod 777 /root/Desktop/*
useradd westos
chown westos /root/Desktop/*
ln -s /root/Desktop/file1 /root/Desktop/file
执行命令看效果:
rsync -r /root/Desktop root@172.25.254.20:/root/Desktop ##同步目录本身其目录中的文件
rsync -r /root/Desktop/ root@172.25.254.20:/root/Desktop ##只同步目录中的文件
rsync -rl /root/Desktop/ root@172.25.254.20:/root/Desktop ##同步链接
rsync -rlp /root/Desktop/ root@172.25.254.20:/root/Desktop ##同步权限
rsync -rlpog /root/Desktop/ root@172.25.254.20:/root/Desktop ##同步用户组
rsync -rlpogt /root/Desktop/ root@172.25.254.20:/root/Desktop ##同步时间戳
rsync -rD /dev/pts root@172.25.254.20:/root/Desktop ##同步设备文件
2.文件的归档压缩
1)文件归档
tar 命令
- c #创建
- f #指定文件名称
- x #解档
- t #查看
- r #向归档文件中添加文件
- --get #解档指定文件
- --delete #删除指定文件
- -C #指定解档路径
实验步骤:
- tar cf etc.tar /etc/
- tar tf etc.tar
- tar rf etc.tar westos_rhel8
- tar xf etc.tar
- tar f etc.tar --get westos_rhel8
- tar f etc.tar --delete westos_rhel8
- tar xf etc.tar -C /root/Desktop
2)文件的压缩
zip 命令
zip -r etc.tar.zip etc.tar #zip格式压缩
unzip etc.tar.zip #zip格式解压缩
gzip 命令
gzip etc.tar #gzip格式压缩
gunzip etc.tar.gz #gzip格式解压缩
bzip2 etc.tar #bzip2格式压缩
bunzip2 etc.tar.bz2 #bzip2格式解压缩
xz etc.tar #xz格式压缩
unxz etc.tar.xz #xz格式解压缩
3)tar+压缩
gzip
tar zcf etc.tar.gz /etc
tar zxf etc.tar.gz
bzip2
tar jcf etc.tar.bz2 /etc tar jxf etc.tar.bz2
xz
tar Jcf etc.tar.xz /etc tar Jxf etc.tar.xz