归档和传输文件
管理压缩的TAR存档
##打包和压缩
打包
打包:也可以称为存档,将多个文档打包成一个文件进行存档。这个打包起来的文件是一个结构化的文件数据序列,有自己的索引,索引到里面的不同文件中。
压缩:压缩文件的本质是通过算法以一种更节省存储空间的方式来存储数据。
归档和压缩最常使用 tar 命令,可以通过 tar 命令将多个文件汇集成一个文件进行存档, 并且支持使用不同的压缩算法进行压缩。
将整个 /etc 目录打包成 etc.tar 存储在当前用户家目录下
tar -cvf ~/etc.tar /etc #如果打包多个文件,多个文件间使用空格分隔
du -ms test.tar #查看文件总大小
① -c 表示创建;-v 显示详细过程;-f 指定文件,必须在选项的最后一位。
② 用户需要具有读取权限,才能够通过 tar 命令进行打包,否则将被跳过。
③ 在归档过程中,tar 会存储文件的所有权及权限。
提取 test.tar 存档文件
mkdir testbackup
cd test/backup
tar -xvf ~/test.tar #将文件提取到当前目录
注意事项:
① 通常会提取到空目录下,以确保不会覆盖现有同名文件。
② 使用 root 用户提取将保留所有权和权限;普通用户提取将归该用户所有。
③ 默认提取的权限将减去 umask,可以用 -p 选项保留权限。
压缩
① 压缩的程度与数据类型有关,不能单纯考虑压缩算法。
② 压缩比越高的压缩算法,压缩时间越长,兼容性越差。
以不同的压缩算法打包并压缩 /etc 进行归档
tar -cvzf etc.gz /etc #使用 gzip 算法
tar -cvjf etc.bz /etc #使用 bzip 算法
tar -cvJf etc.xz /etc #使用 xz 算法
du -ms #依次查看压缩文件的大小
解压缩归档的文件 etc.gz
tar -tf etc.gz #列出压缩文件的内容
tar -xf etc.gz #自动识别压缩算法进行解压,注意文件的覆盖
解压缩归档的文件 etc.gz 到 ~/test
mkdir ~/test
tar -xvf etc.gz -C ~/test #使用 -C 选项指定解压缩的路径
zip 和 unzip (课外)
示例: zip -r -o test.zip test1.txt test2
#r 表示递归,o 指明输出包的名字
unzip <文件>
在系统间安全的传输文件
使用 SCP 传输文件
secure copy
使用 ssh 协议进行身份验证以及传输过程中的加密,可以在系统 间安全的复制文件 。ssh 既能实现安全的远程运行 shell 命令,也能够实现文件 的安全传输。使用 scp 时,会应用 ssh 的配置,例如 rsa 密钥等。
scp #将某个文件传输到某 个路径
scp /test/etc.gz servera:/home/student
#从本地传输到远端 默认使用当前用户进行传输,可以通过 user@host:dir 来指定用户。
scp servera:/home/student/etc.gz /test #从远端复制到本地
将 servera 的整个 /var/log 目录都复制到本地的 /test 目录下
scp -r servera:/var/log /test #使用 -r 选项进行 递归
使用 sftp传输文件
scp:使用非常简单,但是要求管理员了解对端的文件结构。在实际使用的时候 可能会带来一定的使用限制。
sftp:同样是基于 ssh 协议进行身份验证以及传输过程中的加密。它通过建立与远端主机的 sftp 连接进行交互式的文件传输。
sftp <hostname/IP> #默认使用当前用户
查看及跳转目录:cd、pwd、ls、mkdir、rmdir,本地操作需要在命令前上 l(local)。
文件传输:put 上传文件;get 下载文件;-r 选项进行递归。 退出:exit
使用 sftp 向 servera 的 /home/student/test 上传输 etc.tar
使用rsync同步文件
rsync,remote synchronize 顾名思义是一款实现远程同步功能的软件,它在同 步文件的同时,可以保持原来文件的权限、时间、软硬链接等附加信息。 rsync 包括如下的一些特性:
能更新整个目录树和文件系统
有选择性的保持符号链接、硬链接、文件所有者、权限、设备以及时间等
对于多个文件来说,内部机制减少文件等待的延时
能用 rsh、ssh 或直接端口做为传输入端口
支持匿名 rsync 同步文件,是理想的镜像工具
语法:rsync [option]
选项:
使用 rsync 向 servera 的 /home/student 同步 ~/abc 目录 的文件
注意事项:
① rsync 默认只进行增量同步,不删除远端文件。假设本地删除了某文件,同步后不会删除 对端的文件。添加参数 --delete 可以执行删除。
② 同步目录的写法:
/etc 同步/etc目录及以下目录
/etc/ 仅同步/etc目录以下的目录,不拷贝/etc
③ 为减少同步的时间,存档模式不会保留硬链接数,直接同步文件内容,或 者说硬链接关系失效。如果要保留硬链接的话,需要使用 -H 选项。
/etc 同步/etc目录及以下目录**
/etc/ 仅同步/etc目录以下的目录,不拷贝/etc
③ 为减少同步的时间,存档模式不会保留硬链接数,直接同步文件内容,或 者说硬链接关系失效。如果要保留硬链接的话,需要使用 -H 选项。
|