文件传输与压缩
摘要:本次博文主要介绍了不同主机之间在可以通信的前提下的文件远程传输上传和下载、文件的打包和压缩,希望对读者有所帮助。
一、文件传输
(一)scp的上传和下载
1.上传
格式:scp file username@ip:/dir
例如:scp /mnt/redhat root@172.25.211:/mnt
表示把本地主机的/mnt/redhat发送到主机211/mnt下
在接受端主机可以看:
2.下载
格式:scp username@ip:/dir/file /dir
例如:scp root@172.25.254.186:/mnt/redhat .
表示在主机186中下载/mnt/redhat 到当前
(二)rsync的传输
格式如下:
rsync [参数] file username@ip:/dir
rsync -r 同步目录
-l 不忽略链接
-p 不忽略文件权限
-t 不忽文件时间戳
-g 不忽文件所有组
-o 不忽文件所有人
-D 不忽略设备文件
举例演示:
如下,在发送主机建立五个文件和一个链接,并修改其权限和所有人
在发送主机可以查看到:
然后上传到接受主机211的/mnt/中
在接受主机可以查看到:上述主机修改部分并没有同步过来
现在通过设定参数,再次发送到主机211的/mnt/中
效果如下:对应参数部分已经同步到接受主机211
二、文件打包归档
文件归档,就是把多个文件变成一个归档文件
关于打包归档的相关命令如下:
tar c 创建
f 指定归档文件名称
t 显示归档文件中的内容
r 向归档文件中添加文件
--get 取出单个文件
--delete 删除单个文件
x 取出归档文件中的所有内容
-C 指定解档目录
-z gz格式压缩
-j bz2格式压缩
-J xz格式压缩
举例演示:
tar cf etc.tar /etc/
表示打包成etc.tar
tar xf etc.tar
表示默认解包到当前目录
tar xf etc.tar -C /mnt
表示解包到指定mnt目录
tar rf etc.tar /boot/
表示把/boot/添加到etc.tar
tar -f etc.tar --delete etc
表示仅仅删除etc
tar -f etc.tar --get etc
表示仅仅把etc拿出来
tar tf etc.tar
表示不解压查看 etc.tar
tar -f etc.tar --get boot
表示只将boot拿出来
tar -f etc.tar --get boot/grub
表示只将boot子目录grub拿出来
三、常见的压缩命令
为了比较常见的几种压缩命令,这里先将/etc/ 打包为etc.tar
tar cf etc.tar /etc/
测试其大小为30M
du -sh etc.tar
1.zip
压缩 etc.tar
查看大小
解压
2.gzip
压缩 etc.tar
查看大小
解压
3.bzip2
压缩 etc.tar
查看大小
解压
4.xz
压缩 etc.tar
查看大小
解压
(二)直接完成压缩
(1)关于gz的命令
打包压缩同时进行
tar -zcf etc.tar.gz /etc/
解压到指定/mnt/
tar -zxf etc.tar.gz -C /mnt/
(2)关于bz2的命令
打包压缩同时进行
tar -jcf etc.tar.bz2 /etc/
解压到当前
tar -jxf etc.tar.bz2
(3)关于xz的命令
打包压缩同时进行
tar -Jcf etc.tar.xz /etc/
解压到当前
tar -Jxf etc.tar.xz