「RHCSA 红帽系统管理」8、压缩归档和传输文件 2023/09/09 00:31 • 学习笔记 • 阅读 1617 目录 管理压缩的 tar 存档使用 scp 传输文件使用 sftp 传输文件使用 rsync 同步文件和目录总结 管理压缩的 tar 存档 通过 tar 命令可以将多个文件汇集成一个存档,该存档可以使用 gzip、bzip2 或 xz 压缩方式进行压缩。 tar 命令需要以下三个常用选项之一。 -c 创建一个新存档。-x从现有存档提取。-t列出存档的目录。 其他常用选项如下: -v获取详细信息,用于显示存档或提取的文件有哪些。-f文件名,此选项必须后接要使用或创建的存档文件名。-p在提取存档时保留文件和目录的权限,而不去除 umask。 创建新存档时需要使用 -c 选项和 -f 选项,指定创建的存档文件名,最后添加到该存档中的文件列表。 [root@redhat ~]# tar -cf archive.tar 1.txt 2.txt 3.txt [root@redhat ~]# ls archive.tar archive.tar 使用 -t 选项可以列出存档的内容。 [root@redhat ~]# tar -tf archive.tar 1.txt 2.txt 3.txt 使用 x 选项可以从存档中提取文件。 当 root 提取存档时,tar命令会保留文件的原始用户和组所有权。如果普通用户使用 tar 提取文件,文件所有权将属于从存档中提取文件的用户。默认情况下,从存档中提取文件时,将从存档内容的权限中去除 umask。要保留存档文件的权限,可在提取存档时使用 -p 选项。 [root@redhat ~]# mkdir aaa && cd aaa [root@redhat aaa]# tar -xf ../archive.tar [root@redhat aaa]# ll 总用量 0 -rw-r--r--. 1 root root 0 9月 7 00:08 1.txt -rw-r--r--. 1 root root 0 9月 7 00:32 2.txt -rw-r--r--. 1 root root 0 9月 7 00:32 3.txt tar 命令支持三种不同的压缩方式。 -z使用 gzip 压缩方式 (.tar.gz)。gzip 压缩速度最快,历史最久,使用最为广泛,能够跨发行版甚至跨平台使用。-j使用 bzip2 压缩方式 (.tar.bz2)。bzip2 的压缩率通常比 gzip 高。 bzip2 压缩到存档文件通常比 gzip 创建的文件小,但使用不如 gzip 广泛。-J使用 xz 压缩方式 (.tar.xz)。xz 的压缩率通常比 bzip2 更高。xz 压缩方式相对较新,提供最佳的压缩率。 # 创建 gzip 压缩存档 [root@redhat ~]# tar -czf archive.tar.gz aaa # 创建 bzip2 压缩存档 [root@redhat ~]# tar -cjf archive.tar.bz2 aaa # 创建 xz 压缩存档 [root@redhat ~]# tar -cJf archive.tar.xz aaa 提取压缩的 tar 存档时,tar 命令会判断之前使用的压缩方式,因此通常不需要使用在创建存档时,所用的同一压缩选项。 [root@redhat ~]# mkdir bbb && cd bbb [root@redhat bbb]# tar -xf ../archive.tar.gz [root@redhat bbb]# ll 总用量 0 drwxr-xr-x. 2 root root 45 9月 7 01:09 aaa 使用 scp 传输文件 Secure Copy (scp) 命令是 OpenSSH 套件的一部分,可将文件从远程服务器复制到本地,或者从本地复制到远程服务器。 此命令利用 SSH 服务器进行身份验证,并在数据传输之前对其进行加密。远程位置的格式应为 [user@]host:/path 。 [root@redhat ~]# scp 1.txt manager@10.0.101.10:/volume1/homes/kobin/ manager@10.0.101.10's password: 1.txt 100% 713 109.3KB/s 00:00 要以递归方式复制整个目录树,可以使用 -r 选项。 [root@redhat ~]# scp -r aaa manager@10.0.101.10:/volume1/homes/kobin/ manager@10.0.101.10's password: a1.txt 100% 0 0.0KB/s 00:00 a2.txt 100% 0 0.0KB/s 00:00 a3.txt 100% 0 0.0KB/s 00:00 使用 sftp 传输文件 安全文件传输程序 sftp 以交互方式从 SSH 服务器上传或下载文件,与 scp 命令一样,使用 [user@]host 来标识目标系统和用户名。 [root@redhat ~]# sftp manager@10.0.101.10 manager@10.0.101.10's password: Connected to manager@10.0.101.10. sftp> 使用 put 命令将本地系统上的文件,上传到远程服务器中。 sftp> cd /homes/kobin/ sftp> put /root/1.txt Uploading /root/1.txt to /homes/kobin/1.txt /root/1.txt 100% 713 184.4KB/s 00:00 使用 get 命令从远程服务器下载文件,到本地系统上的当前目录,然后使用 exit 命令退出 sftp 会话。 sftp> get work.xlsx Fetching /homes/kobin/work.xlsx to work.xlsx /homes/kobin/work.xlsx sftp> exit 使用 rsync 同步文件和目录 rsync 命令是在系统之间安全复制文件的一种方式,此工具可以仅同步已更改的文件部分,以实现复制的数据量最小化。 使用 rsync 进行同步时,两个常用的选项为 -v 和 -a 选项。-v 选项可提供更详细的输出,这对于故障排除和查看实时进度非常有用。-a 选项将启用「存档模式」,可实现递归复制并开启很多有用的选项,以保留文件的大部分特征。 存档模式与指定以下选项的作用相同: -r以递归方式同步整个目录树-l同步符号链接-p保留权限-t保留时间戳-g保留组所有权-o保留文件所有者-d同步设备文件 使用 rsync 可以同步两个本地文件或目录的内容。 [root@redhat ~]# ll aaa 总用量 0 -rw-r--r--. 1 root root 0 9月 7 02:33 a1.txt -rw-r--r--. 1 root root 0 9月 7 02:33 a2.txt -rw-r--r--. 1 root root 0 9月 7 02:33 a3.txt [root@redhat ~]# ll bbb 总用量 0 # 开始执行同步 [root@redhat ~]# rsync -av ~/aaa/ ~/bbb sending incremental file list ./ a1.txt a2.txt a3.txt sent 230 bytes received 76 bytes 612.00 bytes/sec total size is 0 speedup is 0.00 [root@redhat ~]# ll bbb 总用量 0 -rw-r--r--. 1 root root 0 9月 7 02:33 a1.txt -rw-r--r--. 1 root root 0 9月 7 02:33 a2.txt -rw-r--r--. 1 root root 0 9月 7 02:33 a3.txt 为 rsync 命令键入源目录时,目录名称中是否存在尾随斜杠至关重要。它将决定同步到目标中的是目录还是仅目录中的内容。 跟 scp 和 sftp 命令一样,rsync 使用 [user@]host:/path 格式来指定远程位置。 总结 tar 命令可从一组文件或目录创建存档文件,从存档中提取文件,以及列出存档的内容。 tar 命令提供一组不同的压缩方式,用于缩小存档的大小。 scp 和 sftp 命令作为与运行 SSH 服务器的远程系统来回传输文件的安全方式。 rsync 命令可安全高效地在两个目录之间同步文件。 本文为原创文章,著作权归作者所有:来自「KOBIN 技术随笔」作者的原创作品,转载请标明出处。「RHCSA 红帽系统管理」8、压缩归档和传输文件https://blog.kobin.cn/notes/2857.html 赞 (0) 0 0 生成海报 发表回复 您的邮箱地址不会被公开。 必填项已用 * 标注*昵称: *邮箱: 网址: 记住昵称、邮箱和网址,下次评论免输入 提交 CAPTCHAis initialing...