欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > IT业 > RH134第四章归档和传输文件

RH134第四章归档和传输文件

2025/2/9 8:18:40 来源:https://blog.csdn.net/m0_68754300/article/details/145525107  浏览:    关键词:RH134第四章归档和传输文件

第四章

一,管理压缩的tar存档

1,从命令行创建存档

(1)存档文件和tar命令在Linux 系统中的使用

      <1>存档文件

          存档是一个文件,它包含了多个文件。它可以是一个普通的文件,也可以是一个设备文件(比如磁带驱动器、闪存驱动器等)

          对于普通的文件,存档的作用类似于我们常用的压缩工具,比如 zip。zip 工具将多个文件压缩成一个文件,存档也是类似的概念

     <2>压缩和存档

          存档可以不进行压缩,或者可以使用压缩算法来缩小存档文件的大小。压缩有助于节省存储空间,特别是当你想要传输大文件时。

          Linux 系统上,tar命令是最常用的工具,用于创建、管理和提取存档

     <3>tar 命令

          tar命令可以将多个文件打包成一个存档文件。这个存档文件可以包含文件本身的数据和一些额外的信息(比如文件的权限、修改时间等)

          创建存档时,可以选择是否压缩文件,tar命令支持多种压缩算法

          tar 还允许你查看存档内容(不提取文件)或者直接从存档中提取文件

(2)tar 实用程序的选项

      <1>执行 tar 操作需要以下 tar 命令操作之一

          -c或--create:创建存档文件。

          -t 或r--list:列出存档的内容。

          -x或--extract:提取存档

      <2>常用的 tar 命令选项:

          -v或--verbose:显示在 tar 操作期间存档或提取的文件。

          -f或--file:在此选项后面加上要创建或打开的存档文件名。·-f

          -p或--preserve-permissions:提取时保留原始文件权限。

          --xattrs:启用扩展属性支持,并存储扩展的文件属性。

          --selinux:启用 SELinux上下文支持,并存储 SELinux 文件上下文。

     <3>以下 tar 命令压缩选项用于选择算法

          -a或--auto-compress:使用存档的后缀来确定要使用的法。

          -z 或--gzip :使用gzip 压缩算法,这会生成 .tar.gz后缀。

          -j或--bzip2:使用bzip2 压缩算法,这会生成.tar.bz2 后缀。

          -J或--xz:使用xz 压缩算法,这会生成.tar.xz 后缀。

2,创建存档

(1)使用 tar 命令来创建文件存档

     <1>创建存档

          使用 tar 命令的-c选项来创建存档,

          -f选项后跟存档文件名

          示例

      <2>绝对路径与相对路径

          tar 命令会删除绝对路径的前导斜杠 /,所以存档文件中存的是相对路径。这是为了防止在解压时,如果目标目录中已经存在同名文件,解压后会覆盖原有的文件。这是一种安全做法

      <3>权限要求

          要创建存档的文件必须是你可以读取的。如果你要打包一些系统文件(比如/etc 目录下的文件),你就需要 root 权限,因为这些文件只有管理员(root)才能读取。

      <4>覆盖文件

         如果存档文件名已经存在,tar命令会覆盖它

     <5>扩展属性

          默认情况下,tar 不会保存文件的额外属性。如果你希望保留这些扩展属性,你需要使用一些额外的选项

          --acls:保存 POSIX ACL

          --selinux :保存 SELinux 文件上下文

          --xattrs:保存其他扩展属性

(2)列出归档内容

使用 tar 命令t选项可列出通过f选项指定的存档中的文件名

(3)提取存档内容

      <1>避免覆盖现有文件:当你从一个存档中提取文件时,最好选择一个空目录来提取文件。这样可以避免新提取的文件覆盖现有的文件,尤其是如果你提取的是系统文件或重要配置文件,避免不小心覆盖现有文件

      <2>提取文件的所有权

          如果你是 root用户提取存档中的文件,那么提取出来的文件会保留它们在存档中原本的所有者和所属组

          如果是普通用户提取文件,提取出来的文件将归这个普通用户所有。

     <3>列出存档内容: 在提取之前,可以使用tar -tf命令列出存档中的文件内容

     <4>提取文件:使用 tar-xf命令将存档文件中的内容提取到当前目录中

     <5>文件权限:

          在提取存档文件时,tar 会使用当前的 umask 来设置新文件的权限。。umask控制默认的文件权限,如果你没有特别修改它,可能会导致文件的权限比原来的存档权限要严格(比如不允许普通用户写入)

          如果你希望提取的文件保留存档中的原始权限,可以使用-p或--preserve-permissions 选项。特别是root用户,在没有特别指定时,tar默认就会保留文件的原始权限。

     <6>命令

          tar -tf /root/etc.tar用来查看存档中的文件

          tar -xf /root/etc.tar 用来提取存档中的文件到当前目录,

          tar -xpf /home/user/myscripts.tar 提取存档并保留原始文件权限。

3,创建压缩存档

(1)三种压缩方式

      <1>压缩方法

          gzip:这是一个非常快速的压缩方法,广泛应用于不同操作系统之间。它的压缩效率比其他方法要差一些,但由于它速度快,依然是最常用的。

          bzip2:这个方法能创建更小的存档文件,但压缩速度较慢,且不像gzip 那样被广泛支持。

          xz:这是最新的一种压缩方法,提供了最好的压缩比,意味着文件会压得更小,但压缩和解压的速度比较慢。

     <2>创建压缩存档

          gzip压缩:使用 tar-czf命令来创建压缩存档。例如,命令tar-czf会将 /etc目录的内容创建为 gzip 压缩的存档/root/etcbackup.tar.gz /etc文件/root/etcbackup.tar.gz 。

          bzip2 压缩:使用 tar -cjf 命令来创建 bzip2 压缩存档

          xz压缩:使用 tar -cf 命令来创建 xz压缩存档

     <3>验证压缩存档内容

创建存档后,你可以使用 tar -tf 命令查看压缩文件中的内容。-t 是列出存档内容的选项,-f是指定存档文件的选项

(2)提取压缩存档的内容

      <1>提取压缩存档

          tar命令可以自动识别压缩存档的格式

          如果你尝试用不匹配的压缩方式提取文件,tar会报错。

     <2>使用其他压缩工具

gzip、bzip2 和 xz这三种压缩工具可以单独使用来压缩单个文件,而不是创建存档文件。例如,它们可以压缩一个单独的文件,但不能像tar、一样将多个文件或目录打包在一个存档文件中。

     <3>查看压缩文件的大小

在解压文件之前,你可以使用gzip-l或xz-l 来查看压缩文件的详细信息包括压缩比和未压缩的文件大小。这样可以帮助你确认是否有足够的空间来解压文件

二,在系统之间安全的传输文件

1,使用安全文件传输程序来传输文件

(1)OpenSSH套件和SFTP

OpenSSH是一个用于安全远程登录和文件传输的工具套件。它包含了SFTP(安全文件传输协议)程序,允许用户通过SSH(安全外壳协议)在远程系统之间上传、下载文件,并且保证数据传输是加密的

(2)使用 sftp命令连接到远程服务器

命令格式:[user@]host:/path

             user@是可选的。如果不指定,它会使用你当前的本地用户名。

             host 是远程服务器的地址

            /path 是你想访问的文件路径,

             sftp remoteuser@remotehost:/path/to/file 这条命令会连接到remotehost并使用remoteuser登录

(3)进入交互式 sftp 会话

登录成功后,你会看到一个提示符 sftp>,:表示你已经进入了 SFTP 的交互式模式,可以输入各种命令。

(4)常用 sftp 命令

<1>put: 将本地文件上传到远程服务器

<2> get:从远程服务器下载文件到本地

<3>ls: 列出远程目录中的文件。

<4>cd:切换远程目录。

<5>mkdir: 在远程服务器上创建新目录

<6>rmdir: 删除远程服务器上的空目录

<7>pwd: 显示当前远程目录的路径

<8>exit: 退出SFTP会话

(5)help 命令

在sftp>提示符下输入 help,会列出所有可用的 sftp 命令及其功能。

(6)pwd 命令可显示远程主机上的当前工作目录

(7)lpwd 命令显示本地主机上的当前工作目录

(8)创建远程目录并上传文件

      

          mkdir hostbackup:在远程主机上的当前目录创建一个新目录 hostbackup

          cd hostbackup:进入刚刚创建的 hostbackup 目录

          put /etc/hosts:使用 put命令将本地的 /etc/hosts 文件上传到当前远程目录也就是刚刚进入的 hostbackup 目录。上传过程完成后,系统会显示上传的文件路径

(9)使用sftp命令-r选项以递归方式复制整个目录树

(10)使用sftp get 文件路径 选项从远程主机下载文件到本地系统上的当前目录

(11)exit:结束当前的 SFTP会话

(12)通过单一命令行执行 SFTP 操作

          如果你不想进入交互式的 SFTP 会话,也可以直接使用 sftp 命令来下载远程文件

          Eg:使用以下命令可以从远程主机下载文件

              sftp remoteuser@remotehost:/home/remoteuser/remotefile:会直接下载远程的 remotefile 文件到本地当前目录

2,使用安全复制协议传输文件

(1)scp命令 是用来在本地和远程主机之间传输文件的命令。它通过 SSH 进行加密数据传输,所以文件传输是安全的。

(2)在使用 scp 时,可以指定远程主机的地址和用户名,格式为[user@]host:/path 。如果没有指定用户名,scp会默认使用本地的用户名,

(3)尽管 scp在过去很流行,但它基于的协议(rcp)在设计时没有考虑到安全性,导致它存在一些已知的漏洞。例如,攻击者可能利用这些漏洞在远程服务器上执行恶意命令

(4)因为这些安全问题,许多系统管理员现在建议不再使用 scp,而是推荐使用 sftp 或rsync 这样的工具,它们提供了更好的安全性。

三,在系统之间安全地同步文件

1,同步远程文件和目录

(1)rsync概括

      <1> rsync命令:它比传统的文件复制方法更高效,因为它只复制发生变化的部分。这意味着如果两个文件很相似,rsync只会复制文件之间不同的部分,而不是全部重新复制,从而节省时间和带宽。

      <2>首次同步和后续同步:首次同步文件或目录时,rsync需要将所有文件传输过去但之后的同步只会传输变化了的部分,这样速度会更快,节省了很多时间。

(2)命令

     <1> rsync 命令 -n选项可进行空运行

空运行可以模拟执行命令时所发生的情况。空运行显示了在实际执行时 rsync 命令所要进行的更改。请在进行实际rsync 命令操作前先执行空运行,以确保重要的文件不会被覆盖或删除。

     <2> rsync 命令的 -v或--verbose 选项可提供更详细的输出

                 此命令对于故障排除和查看实时进度非常有用

      <3> rsync 命令的 -a或--archive 选项将启用“存档模式”。

                 此命令可实现递归复制并开启很多有用的选项,以保留文件和目录在复制过程中尽量保持原样。存档模式的作业与指定以下选项相同:

         

          使用rsync 命令 -H选项来保留硬链接。

                        -A,保留访问控制列表(ACL)

                       -X,保留 SELinux 上下文

(3)使用 rsync命令同步文件和目录

         本地计算机和远程计算机之间的同步

     <1> rsync 命令的基本功能

          rsync 命令可以用来同步文件和目录,可以是本地到远程,也可以是远程到本地,或者同一计算机上的两个目录之间的同步

          使用类似 [user@]host:/path 这样的格式来指定远程文件路径。user是远程计算机上的用户名,host 是计算机的名称或IP地址,/path 是要同步的目录或文件。

     <2>文件所有权

           如果你想保留文件的所有者信息,你需要是目标计算机上的root用户,或者在本地使用 root 权限运行 rsync 命令。

     <3>本地和远程同步示例

      

      

      

      

(4)尾随斜杠的重要性

      <1>在使用 rsync 时,源目录路径末尾的斜杠非常重要。如果源目录路径有尾随斜杠,rsync会同步目录里的内容,而不包括目录本身,这些内容会直接复制到目标目录。

      <2>如果没有尾随斜杠,rsync会将源目录本身作为一个新目录复制到目标位置。

      

      

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com