Linux系统中的文件传输
实验环境:
可互相通信的两台主机
systemctl disable --now firewalld 关闭防火墙
##scp命令
scp 本地文件 远程主机用户@远程主机ip:远程主机目录的绝对路径
scp 远程主机用户@远程主机ip:远程主机文件的绝对路径 本地文件
步骤:
touch lcf
mkdir lcfdir
测试
2.测试
#把本地文件复制到远程主机
scp lcf root@172.25.254.20:/root/Desktop
scp -r lcfdir root@172.25.254.20:/root/Desktop ## -r 表示复制目录
scp -q lcf root@172.25.254.20:/root/Desktop ## -q 传输文件时不显示进度
#把远程文件复制到本地(下载)
scp root@172.25.254.20:/root/Desktop/lcf* /root/Desktop(或用.代替)
time scp
##rsync
westosb中完成免密认证
ssh-keygen
ssh-copy-id -i /root/.ssh/id_rsa.pub. root@172.18.0.202
3)创建测试脚本
vim test.sh #检测rsync的传输时间
4)执行
##scp
sh test.sh
以上执行效果可以看出scp三次执行时间几乎一致
#rsync执行
sh test.sh
以上执行效果我们可以看出rsync三次执行时间后两次小于第一次
#rsync用法
rsync 文件 远程用户@远程主机ip:远程主机目录
rsync 远程用户@远程主机ip:远程主机目录 文件路径
rsync
-r ##复制目录
-l ##复制链接
-p ##复制权限
-t ##复制时间戳
-o ##复制拥有者
-g ##复制拥有组
-D ##复制设备文件
实验环境
在westosa中
watch -n 1 ls -lR /root/Desktop
在westosb中
touch /root/Desktop/lcf{1..5}
chmod 777 /root/Desktop/*
useradd westos
chown westos /root/Desktop/*lcf
ln -s /root/Desktop/lcf1 /root/Desktop/file
westosb执行:
执行命令看效果:
rsync -r root@172.18.0.102:/root/Desktop/ /mnt ##同步目录本身其目录中的文件
rsync -r root@172.18.0.102:/root/Desktop/ /mnt/ ##只同步目录中的文件
rsync -rl root@172.18.0.102:/root/Desktop/ /mnt ##同步链接
rsync -rlp root@172.18.0.102:/root/Desktop/ /mnt ##同步权限
rsync -rlpog root@172.18.0.102:/root/Desktop/ /mnt##同步用户组
rsync -rlpogt root@172.18.0.102:/root/Desktop/ /mnt##同步时间
rsync -rD root@172.18.0.102:/dev/pts/ /mnt ##同步设备文件
##文件的归档压缩
1.文件归档
tar
c ##创建
f ##指定文件名称
x ##解档
v ##现实过程
t ##查看
r ##向归档文件中添加文件
–get ##解档指定文件
–delete ##删除指定文件
-C ##指定解档路径
-P ##don’t remove “/”
实验步骤:
tar cf etc.tar /etc/
tar tf etc.tar
tar rf etc.tar lcf
tar xf etc.tar
tar f etc.tar --get lcf
tar f etc.tar --delete lcf
tar xf etc.tar -C /root/Desktop
#文件的压缩
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 mnt.tar #xz格式压缩
unxz mnt.tar.xz #xz格式解压缩
##打包(tar)+压缩
gzip
tar zcf etc.tar.gz /etc
tar zxf etc.tar.gz
bzip2
tar jcf etc.tar.bz2 /etc
du -sh 查看文件大小