Linux系统中的文件传输
一、远程文件传输
在说明远程文件传输前,我们需要先搭建实验环境,即需要2台主机并且保证这两台主机是可以通信的,一台主机作为文件发送方即服务器,另一台主机作为文件接收方即客户端。这里,我们的两台主机配置如下:
发送方westosb IP:172.25.254.233
接收方westosa IP:172.25.254.133
注意:为了保证两台主机可以进行文件传输,我们需要关闭两台主机的防火墙—systemctl disable --now firewalld
1、scp命令
发送方:
scp 本地文件 远程主机用户@远程主机ip:远程主机目录的绝对路径
接收方(最后一定要有(空格).):
scp 远程主机用户@远程主机ip:远程主机文件的绝对路径 本地文件 .
scp -r #复制目录
-q #传输文件时不显示进度
实验步骤:
1)在发送方建立实验素材
2)测试
把本地文件复制到远程主机 (上传)
把远程文件复制到本地(下载)
传输目录及其内容
2、 rsync命令
a)rsync和scp命令的对比
在每次进行远程文件传输时,都要输入接收方的密码进行传输认证,为了便于后续实验,我们可以进行以下操作实现文件传输免密功能:
实验步骤: 这里使用time
命令分别检测rsync和scp命令的执行时间
1)创建测试脚本
2)执行
scp三次执行时间一般来说基本一致(这里由于我们传输的是单个较小文件,实验效果不太明显),这是由于scp命令实现的是对文件的精准传输,不会对远程主机上的文件情况做检测。scp三次系统执行时间如下:
rsync三次系统执行时间明显小于scp命令,这是因为rsync命令在传输过程中对远程主机上的文件做了重复检测,其执行时间如下:
b)rsync用法
rsync 文件 远程用户@远程主机ip:远程主机目录
rsync 远程用户@远程主机ip:远程主机目录 文件路径
注意:在同步目录时,目录输入格式不同,操作效果也不同
如:/mnt 同步目录本身 /mnt/ 同步目录中的内容
rsync -r ##复制目录
-l ##复制链接
-p ##复制权限
-t ##复制时间戳
-o ##复制拥有者
-g ##复制拥有组
-D ##复制设备文件
实验步骤:
1)登录接收方westosa和发送方westosb的两台主机
2)在发送方中建立实验素材
3)执行命令看效果
4)在接收方中使用watch -n 1 ls -lR /mnt
监控文件传输过程
二、文件的归档压缩
1、文件归档(打包)
tar c ##创建
f ##指定文件名称
x ##解档
v ##现实过程
t ##查看
r ##向归档文件中添加文件
--get ##解档指定文件
--delete ##删除指定文件
-C ##指定解档路径
-P ##don't remove "/"
##即在解压时将打包文件解压到命令行输入的路径
##而不是在当前路径下递归创建去掉/后的目录
实验步骤:
2、文件压缩
a)zip
zip -r etc.tar.zip etc.tar
:zip格式压缩
unzip etc.tar.zip
:zip格式解压缩
b)gzip
gzip etc.tar
:gzip格式压缩
gunzip etc.tar.gz
:gzip格式解压缩
c)bzip2
bzip2 etc.tar
:bzip2格式压缩
bunzip2 etc.tar.bz2
:bzip2格式解压缩
d)xz
xz etc.tar
:xz格式压缩
unxz etc.tar.xz
:xz格式解压缩
实验步骤:
3、tar+压缩:打包后同时进行压缩
a)gzip
tar zcf etc.tar.gz /etc
:打包后以gzip格式压缩
tar zxf etc.tar.gz
:gzip格式解压缩
b)bzip2
tar jcf etc.tar.bz2 /etc
:打包后以bzip2格式压缩
tar jxf etc.tar.bz2
:bzip2格式解压缩
c)xz
tar Jcf etc.tar.xz /etc
:打包后以xz格式压缩
tar Jxf etc.tar.xz
:xz格式解压缩
实验步骤: