1、实验环境
需要可通信的两台主机
真实主机:172.25.254.18
虚拟机:172.25.254.200
2、scp命令
scp
scp | 本地文件 | 远程主机用户@远程主机IP:远程主机目录 |
scp | 远程主机用户@远程主机IP:远程主机目录 | 本地文件 |
实验步骤:
1)在真机桌面上建立实验素材
touch file
mkdir westosdir
2)测试:把本地文件复制到远程主机
scp file root@172.25.254.200:/mnt
scp -r westosdir root@172.25.254.200:/mnt #-r表示复制目录
scp -q westos root@172.25.254.200:/mnt #-q表示传输文件时不显示进度
3)在虚拟机/mnt中删除所复制的文件并建立新的文件
touch redhat8
4)测试:把远程文件复制到本地
scp root@172.25.254.200:/mnt/redhat8 ~/Desktop
3、rsync命令
(1)rsync命令和scp命令的对比
1)实验素材:在虚拟机中建立文件
dd if=/dev/zero of=/mnt/file1 bs=1M count=10
dd if=/dev/zero of=/mnt/file2 bs=1M count=20
dd if=/dev/zero of=/mnt/file3 bs=1M count=30
#dd=截取,if=inputfile,of=outputfile,bs=blocksize,count=块的个数
2)在真实主机与虚拟机之间建立免密登录使文件传输可以直接执行
真实主机中:
ssh-keygen #生成密钥
ssh-copy-id -i /home/kiosk/.ssh/id_rsa.pub root@172.25.254.200
3)欲多次执行,则创建测试脚本
vim check_scp.sh #检测scp传输时间
vim check_rsync.sh#检测rsync传输时间
4)执行
sh check_scp.sh
以上执行效果可以看出scp三次执行时间几乎一致
sh check_rsync.sh
以上执行效果可以看出rsync后两次执行时间远远小于第一次
(2)rsync命令用法
rsync | 文件 | 远程用户@远程主机IP:远程主机目录 |
rsync | 远程用户@远程主机IP:远程主机目录 | 文件路径 |
rsync
参数 | 功能 |
---|---|
-r | 复制目录 |
-l | 复制链接 |
-p | 复制权限 |
-t | 复制时间戳 |
-o | 复制拥有者 |
-g | 复制拥有组 |
-D | 复制设备文件 |
1)实验素材
在虚拟机中
touch /mnt/file{1..5}
chown student:student /mnt/*
chmod 777 /mnt/*
ln -s /mnt/file1 /mnt/file
在真实主机中
mkdir ~/Desktop/westos
watch -n 1 ls -lR ~/Desktop/westos/
2)执行命令看效果
同步目录本身其目录中的文件(不加/:目录本身及目录内容均会复制)
只同步目录中的文件(加上/:目录本身不会复制)
同步链接
同步权限
同步时间戳
同步拥有者和拥有组
rsync -rlpog root@172.25.254.200:/mnt/ ~/Desktop/westos
同步设备文件
rsync -rD root@172.25.254.200:/dev/pts westos/
4、文件归档及压缩
(1)文件归档
tar
c | 创建 |
f | 指定文件名称 |
x | 解档 |
t | 查看 |
r | 向归档文件中添加文件 |
–get | 解档指定文件 |
–delete | 删除指定文件 |
-C | 指定解档路径 |
实验步骤:
(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
bzip2 etc.tar #bzip2格式压缩
bunzip2 etc.tar.bz2 #bunzip2格式解压缩
xz
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