Linux上的文件传输常用方式介绍与比较
1.scp
scp命令能实现在网络上的主机之间的文件拷贝,它是安全拷贝(secure copy)的缩写。scp命令使用ssh来传输数据,并使用于ssh相同的认证方式,提供同样的安全保证。
命令用法:
【文件传输】
scp file user@ip:/dir
【文件下载】
scp user@ip:file /dir
演示
演示开始之前我们准备两台主机,保证他们之间能彼此连接。我们要做的是将指定文件传输到另一台主机的/mnt中,为了保证实验顺利进行,我们先将它的/mnt目录清空
我们要传输的文件如下
1)把主机1上的文件file传输到主机2上
scp hello root@172.25.254.206:/mnt
2)查看IP为172.25.254.206的主机是否收到,若收到,查看文件内容
3)文件下载操作也大致相同,如下即可:
2.rsync
rsync是一款高效的远程远程数据备份和镜像工具,可快速地同步多台主机间的文件,其具有如下特性:
1)支持链接、所有者、组信息以及权限信息的拷贝;
2)通过远程shell(ssh、rsh)进行传输;
3)无须特殊权限即可安装使用;
4)流水线式文件传输模式,文件传输效率高;
4)支持匿名操作;
需要提及的是 rsync 以其优越的性能优势区别于其它几种 Linux 文件传输方法,其同步文件的速度相当快,这主要归功于 rsync 所使用的传输算法。简而言之 rsync 算法能在相当短的时间内计算出需要备份的数据,只对源文件与目标文件的不同之处进行传输,从而降低网络中传输的数据量,以此达到快速备份镜像的目的。
基本命令介绍
命令 | 功能 |
---|---|
-r | 同步目录 |
-p | 同步权限 |
-o | 同步文件所有人 |
-g | 同步文件所有组 |
-l | 同步链接 |
-D | 同步设备文件 |
-t | 同步文件时间戳 |
操作演示如下:
1)同步主机1中目录/mnt中的内容到主机2的/mnt中
rsync -r /mnt/ root@172.25.254.206:/mnt/
查看是否同步成功
2)同步为文件权限
首先我们将主机1中的文件权限修改为满权限,并查看主机2中刚刚同步的文件权限作对比
下面开始同步文件权限
rsync -p /mnt/ root@172.25.254.206:/mnt/
3.tar
tar的功能为归档文件,通俗来讲就是把多个文件变成一个文件
命令介绍:
参数 | 功能 |
---|---|
-c | 创建 |
-v | 显示过程 |
-f | 指定归档文件名称 |
-x | 解档 |
-t | 查看关于归档文件内容 |
-r | 添加文件到归档中 |
- -get | 解档指定文件 |
- -delete | 删除归档中的指定文件 |
-C | 解除归档目录 |
操作演示:
1)我们将/etc/下的所有文件归档,并指定文件名称为westos.tar
2)创建文件file,并把文件file保存到归档文件中。
3)将文件file从归档文件中解除
操作前
操作后
除了上述例子以外,还有以下操作
tar -xf westos.tar ##对归档文件解档
tar -xvf westos.tar -C /mnt/ ##对归档文件westos.tar进行解档,显示解档过程,并将解档后的文件保存到目录/mnt/下
4.压缩
压缩是一种通过特定算法来减小文件大小,它主要是通过是文件总字节述来实现的,从而能使为文件传输速率加快,并减少文件占用的磁盘空间
1)zip
zip -r xxx.tar.zip xxx.tar #y压缩
unzip xxx.tar.zip
操作演示:
由下图可知,压缩前文件30MB,压缩后文件8.4MB
解压时先将原文件westos.tar删除,不然看不出变化(它会提示是否将原文件替换调,输入【y】,解压成功然后替换原文件)
2)gzip
gzip xxx.tar ##压缩
gunzip xxx.tar.gz ##解压
压缩
解压
3)bz2
bzip2 xxx.tar ##压缩
bunzip2 xxx.tar.ba2 ##解压
压缩
解压
4)xz
xz xxx.tar ##压缩
unxz xxx.tar.xz ##解压
压缩
解压