rsync方法传输系统文件&文件打包及压缩
1.什么叫linux系统的文件传输?
在日常生活当中我们在两台主机之间拷贝东西使用u盘,这样比较麻烦。
在linux系统当中,为了方便起见,我们直接使用命令来拷贝文件。
2.搭建实验环境
- 防止真机被搞坏,所以我们在两台虚拟机之间进行文件传输
- 但是前提是必须保证传送方的文件是存在的
- 也就是先在文件发送方的虚拟机里面建立文件,然后再传输给文件接收方的虚拟机
第一步:重置两台虚拟机,保证纯净的实验环境,然后重新配置ip,依旧是desktop的ip为172.25.254.170,改名为client.westos.com。
server的ip为172.25.254.90,改名为server.westos.com,当然,此处可以不需要改名字,改名字只是为了便于区分身份。配置网络ip用命令nm-connection-editor。过程请看上一篇博客。
server主机的ip为172.25.254.90
client即desktop主机的ip为172.25.254.170
第二步:这里我用真机的两个shell分别远程控制两个虚拟机,文件传输的效果直接在两个虚拟机shell中显示,
与图形界面无关。(原因:真机的反应速度快)
1)真机控制client即desktop主机:
发现远程控制成功,在真机里面新建文件出现在了client桌面。
真机控制server主机:
发现远程控制成功,在真机里面新建文件出现在了server桌面。
接下来的实验可以直接在两台虚拟机的shell里面完成。
3.文件传输命令(rsync)
(1)一般命令:scp (一般使用scp命令在两个系统之间至直接拷贝文件比较慢)
- scp file [email protected]:/dir 相当于上传(将自己主机上面的文件复制到远程主机上面)
- scp [email protected]:/file dir 相当于下载(将远程主机上面的文件复制到自己的主机上面)
具体的上传和下载步骤在上一篇博客sshd服务里面已经演示过。
(2)远程同步命令:rsync
- rsync(远程同步命令拷贝文件更快,rsync命令在linux里面好用,相当于远程镜像)
- rsync 远程同步命令,速度快,但是会默认忽视文件属性、链接文件、设备文件
相关参数说明
- r 同步目录
- p 同步权限
- o 同步文件所有人
- g 同步文件所有组
- l 同步链接
- D 同步设备文件
- t 同步文件时间戳
注意:
- 当文件比较小时,scp和rsync传输文件的速度差不多
- 当文件比较大时,scp和rsync传输文件的速度相差很大,rsync 比scp快。
- 传输速度的快慢不是取决于文件的数量,而是取决于文件的大小
实验过程如下:
搞清楚两台主机
我现在将左边client作为发送方,右边server作为接受方
rysnc -r ##同步目录
注意:/mnt 与 /mnt/的区别在于
- /mnt 传输mnt这个目录以及mnt下的文件
- /mnt/ 传输mnt这个目录下的文件
rsync -p ##同步权限
rsync -o ##同步文件所有人
rsync -g ##同步文件所有组(注意:只是文件)
rsync -l ##同步链接
rsync -D ##同步设备文件
rsync -t ##同步文件时间戳(文件的)
注意:
- 两个shell一个用来操作,另一个用来查看效果
- 操作前先建立一些文件,确保操作过程中传输的文件或者目录是存在的
- rsync此命令在传输的过程中不会特别详细,会忽略一些内容,需要在命令后面添加一些参数来确保完整
###文件归档###
- 归档是把多个文件变成一个文件,也称将多个文件打包成一个文件
- 归档的目的:归档打包是为了文件在多台主机之间传输的更快
注意:
- 传输速度快不快取决于文件大小,并不是看文件数量的多少
- 打包不是压缩,文件大小并没有改变
实验环境:此实验用真机控制一台虚拟机,在真机的shell里面输入打包命令,效果显示在虚拟机的图形界面上,我用真机控制Desktop主机(ip为172.25.254.170)
tar 归档文件命令
tar命令后面的常用相关参数说明如下:
- -c 创建文档 (也叫创建一个包),必须加
- -f 指定归档文件名称(就是指明把这个东西放到哪里,否则没有意义)必须加上-f,否则会乱码
- -v 显示打包的过程(显示都打包了哪些文件)
- -x 解档(将包解开)
- -t 查看归档文件内容(查看包中的内容)
- -r 添加文件到归档中(将别的文件放到这个包中)
- --get 解档指定文件(指定将哪个文件解出来)
- --delete 删除归档中的指定文件(指定删除文档中的哪个文件)
- -C 指定解档目录(指定将解出来的东西放到哪)
- tar cf etc.tar /etc 表示将根目录下的etc这个目录打包成一个etc.tar 放到桌面
注意:弄清楚目录 ,要会切换目录,cf表示create file
tar的常用命令格式如下:
tar cf etc.tar /etc
tar cfv etc.tar /etc
touch file
tar cf etc.tar /etc file
touch file
tar cvf etc.tar /etc file
tar tf tec.tar
touch file
tar cf etc.tar /etc
tar rf etc.tar file
tar f etc.tar --delete file
tar xf etc.tar
tar f etc.tar --get etc
tar xf etc.tar -C /mnt/
tar cf /mnt/etc.tar /etc
###压缩###
- linux下的压缩格式一共有4种 : zip 压缩 、gz压缩、bz2压缩、xz压缩
- 压缩对于来说i大文件更明显,压缩时间长效果更明显
- 包括:先打包再压缩;打包的同时压缩,解压
- 每次压缩前后使用du -sh 目录名, 查看大小,进行对比
注意问题:打包的时候不算链接(快捷方式的大小) 但是du -sh这个命令查看大小会算上链接的大小
此实验用真机控制一台虚拟机,在真机的shell里面输入打包命令,效果显示在虚拟机的图形截面上
因此du -sh /etc/ 与du -sh etc.tar大小不同
(1)zip 压缩:
格式:zip -r xxx.tar.zip xxx.tar 将后面已经打包的文件压缩成前面的文件格式
unzip xxx.tar.zip 将这个压缩文件解压
(2)gz压缩:
格式:gzip xxx.tar 直接压缩后面的打包文件
gunzip xxx.tar.gz 解压
tar zcf xxx.tar.gz /xxx 打包的同时压缩
tar zxf xxx.tar.gz 解压
(3)bz2压缩:
格式:bzip2 xxx.tar 直接压缩打包的文件
bunzip2 xxx.tar.bz2 解压
tar jcf xxx.tar.bz2 /xxxx 打包的同时压缩
(4)xz压缩:
格式:xz xxx.tar 直接压缩打包文件
unxz xxx.tar.xz 解压
tar Jcf xxx.tar.xz /xxx 打包的同时压缩
tar Jxf xxx.tar.xz 解压
结论:通过实验对比4种压缩后的文件大小可知, zip 压缩 、gz压缩、bz2压缩、xz压缩的压缩效果越来越好。