问题的引入
在之前提到了《拷贝之scp命令》
现在首先来介绍另外一种以镜像方式传输,速度比scp快的多的传输命令:rsync
rsync
格式:
rsync [参数] file username@ip:/dir
参数:
-r ##同步目录
-l ##不忽略链接
-p ##不忽略文件权限
-t ##不忽略文件时间戳
-g ##不忽略文件所有组
-o ##不忽略文件所有人
-D ##不忽略设备文件
在对比将/etc文件全部转移到对方用户的目录下时,scp命令一共用了15秒(当然可能是机子不行。。。),但是rsync命令一共只用了2秒,这个对比还是有的。因为rsync传输过程中默认会忽略很多属性,就是上面参数所要加上的。
不过,对于文件传输,我们当要一直去寻找更快的方式—–优化系统时,可能一个月的成果也只是那零点几秒,当然不能在这个上花时间。
*针对文件传输,系统有了归档,压缩的功能,可以将文件变小,加快传输。比如刚刚介绍的/etc,如果打包后传输,传输时间一秒都不到。下面具体介绍归档和压缩。
另外,文档归档也是节约时间,有效管理信息,高效管理文件的方法
文件归档
文件归档,就是把多个文件变成一个归档文件,归档文件是一个文件和目录的集合,而这个集合被贮存在一个文件中。归档文件没有经过压缩—-它占用的空间是其中所有文件和目录的总和。压缩文件也是一个文件和目录的集合,且这个集合也被贮存在一个文件中,但是,它的存储方式使其所占用的磁盘空间比其中所有文件和目录的总和要少。
格式:
tar 【参数】... 【文件】...
参数:
c ##创建
f ##指定归档文件名称
t ##显示归档文件中的内容
r ##向归档文件中添加文件
--get ##取出单个文件
--delete ##删除单个文件
x ##取出归档文件中的所有内容
-C ##指定解档目录 *需要添加指定的目录
-z ##gz格式压缩
-j ##bz2格式压缩
-J ##xz格式压缩
简单几个例子:
tar cf westos.tar /etc //将/etc打包成westos.tar 归档文件
tar tf westos.tar //查看归档文件里面的内容
touch file
tar -fr westos.tar file //向归档文件中添加file文件
tar -f westos.tar - - delete file //从归档文件中删除file文件
tar -f westos.tar - - get file //从归档文件中取出file文件
tar -xf westos.tar -C /root/Desktop //解档并指定路径解在/root/Desktop
tips:
查看文件大小命令: du
可以用来查看归档前后,或者解压前后的文件大小变化
用法:
du -sh xxx //可以查看文件的大小,一般以Mb为单位
压缩
//由图,压缩前30M,压缩后仅仅只有8.4M
压缩可以大幅提升传输速度。常见的具体压缩方式有以下几种:
gzip
gzip etc.tar ##压缩成gz格式
gunzip etc.tar.gz ##解压gz格式压缩包
语法:gzip[cdtv#] 文件名
参数:
-c: 将压缩数据输出到屏幕上
-d:解压缩 ##gzip可以解开compress,zip,gzip等软件压缩的文件
-t:可以检验一个压缩文件的一致性,看文件有无错误
-v:显示源文件/压缩文件的压缩比等信息
-#:压缩等级,-1最快,-9最慢,默认值时-6
//用tar命令也可完成操作:
*tar zcf etc.tar.gz /etc ##把文件归档为tar并压缩成gz
*tar zxf etc.tar.gz ##解压并解档gz格式压缩包
bz2
bzip2 etc.tar ##压缩成bz2格式
bunzip2 etc.tar.bz2 ##解压bz2格式压缩包
语法:bzip2[-cdkzv#] 文件名
选项与参数:
-c:将压缩数据输出到屏幕上
-d:解压缩
-k:保留原始文件
-z:压缩
-v:显示源文件/压缩文件的压缩比等信息
-#:压缩等级,-1最快,-9最慢
//用tar完成操作:
*tar jcf etc.tar.bz2 /etc ##把文件归档为tar并压缩成bz2
*tar jxf etc.tar.bz2 ##解压并解档bz2格式压缩包
- bzip2的压缩比gzip要好
xz
xz etc.tar ##压缩成xz格式
unxz etc.tar.xz ##解压xz格式压缩包
//一般用tar完成操作:
tar Jcf etc.tar.xz /etc //把文件归档为tar并压缩成zx"
tar Jxf etc.tar.xz //解压并解档xz格式压缩包
zip
zip -r filename.zip filesdir ##压缩成zip格式
unzip filename.zip ##解压zip格式压缩包
- filename.zip 代表你创建的文件,filesdir 代表你想放置新 zip 文件的目录。
- -r 选项指定你想递归地(recursively)包括所有包括在 filesdir 目录中的文件。
- 可以使用 zip 命令同时处理多个文件和目录,方法是将它们逐一列出,并用空格间隔:
zip -r filename.zip file1 file2 file3 /etc
- 上面的命令是把 file1、file2、 file3、以及 /etc 目录的内容压缩起来,然后放入 filename.zip 文件中。
*总结:
1、*.tar 用 tar –xvf 解压
2、*.gz 用 gzip -d或者gunzip 解压
3、.tar.gz和.tgz 用 tar –xzf 解压
4、*.bz2 用 bzip2 -d或者用bunzip2 解压
5、*.tar.bz2用tar –xjf 解压
6、*.Z 用 uncompress 解压
7、*.tar.Z 用tar –xZf 解压
8、*.rar 用 unrar e解压
9、*.zip 用 unzip 解压