前言
linux服务器之间传输文件的有四种方式
1. wget是一个从网络上自动下载文件的自由工具,支持通过HTTP、HTTPS、FTP三个最常见的TCP/IP协议下载,并可以使用HTTP代理。
2. scp就是secure copy,是用来进行远程文件拷贝的。数据传输使用 ssh,并且和ssh 使用相同的认证方式,提供相同的安全保证 。
3. rcp指令用在远端复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到该目录中。
4. rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了remote sync。它的操作方式和scp和相似,但是比scp强大很多。使用双冒号分割主机名和文件路径时,是使用rsync服务器,这里主要介绍rsysnc的用法
rsync 的远程同步
环境:真机使用ssh连接两台虚拟机上一台client:172.25.254.1一台server:172.25.254.2
例1:将server内的/etc目录传同步到client的/mnt目录下
[root@server mnt]# rsync -r /etc root@172.25.254.1:/mnt/ #注意:要将etc目录传递过去,则不可以加斜杠"/":etc/ 。否则就是传递etc内全部文件不包括etc目录
例2:区分rsync不同参数的作用
首先已知server里的dir文件的信息为:
1. [root@server mnt]# rsync -r dir root@172.25.254.1:/mnt/ #默认同步会忽略掉文件属性,链接文件,设备文件等...
2. -rp dir root@172.25.254.1:/mnt/ #t同步权限
3. -rpo dir root@172.25.254.1:/mnt/ #同步文件的所有人
4. -rpog dir root@172.25.254.1:/mnt/ #同步文件的所有组
5. -rt dir root@172.25.254.1:/mnt/ #同步时间
6. -rl dir root@172.25.254.1:/mnt/ #同步链接
7. -rD dir root@172.25.254.1:/mnt/ #同步设备文件
归档和压缩文件
归档
tar
打包:将一大堆文件或目录变成一个总的文件【tar命令】
压缩:将一个大的文件通过一些压缩算法变成一个小文件【gzip,bzip2等】
Linux中很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你得将这一大堆文件先打成一个包(tar命令),然后再用压缩程序进行压缩(gzip bzip2命令)。
tar 常用的参数
tar -c #创建一个归档文件
-v #显示过程
-f #指定归档文件名称
-x #解档
-t #查看归档文件内容
-r #添加文件到归档中
--get #解档指定文件
--delete #删除归档中的指定文件
-C #指定解档目录
实例
将etc目录归档和解档
tar -cf etc.tar etc/ #归档
tar -xf etc.tar #解档
tar -rf etc.tar file #将file添加到归档中
tar -tf etc.tar #查看归档文件内容
tar -f etc.tar --get file #将file从归档文件中解档
tar -f etc.tar --delete file #将file从归档中删除
tar -xf etc.tar -C /etc/ #将目录etc从归档中解档
压缩
常用的压缩打包方式有zip gz gz2 xz这四种
而压缩可以把文件的大小变小进而提升传输速度
实例:
使用zip压缩38M的etc.atr归档文件并查看压缩后大小
关键命令:
zip -r etc.tar.zip etc.tar #压缩为 .zip格式
unzip etc.tar.zip #解压
可以看到压缩少了22M
使用gz压缩38M的etc.atr归档文件并查看压缩后大小
关键命令:
gzip etc.tar #t压缩为 .gz 格式
gunzip etc.tar.gz #解压
===等价于
tar zcf etc.tar.gz /etc
tar zxf etc.tar.gz
缩小了26M
使用gz压缩38M的etc.atr归档文件并查看压缩后大小
关键命令:
bzip2 etc.tar #压缩为 .gz2 格式
bunzip2 etc.tar.gz2 #解压
===也等价于
tar jcf etc.tar.ba2 /etc/
缩小到了9.5M
同样的xz为
xz etc.tar #压缩为 .xz格式
unxz etc.tar.xz #解压
这四种打包格式中 gz xz bz2 可以打包压缩一步完成
所以有
tar zcf etc.tar.gz /etc/ #打包为 .gz格式
tar xcf etc.tar.bz2 /etc #打包为 .bz2格式
tar Jcf etc.tar.xz etc #打包压缩为 .xz格式