当前位置: 首页 > java >正文

Linux学习----归档和传输文件实用指南

在红帽企业 Linux 系统管理中,归档和传输文件能帮助系统管理员高效管理文件备份、安全传输数据以及实现跨系统文件同步,为 Linux 系统运维工作奠定关键基础。

一、管理压缩的 tar 存档:文件归档核心技能

tar 命令是 Linux 系统中归档和压缩文件的核心工具,支持多种压缩方式,能满足不同场景下的文件备份需求,其关键操作涵盖以下方面:

1. tar 命令核心选项解析

tar 命令的功能实现依赖各类选项组合,不同选项对应不同操作,常用核心选项如下表所示:

选项英文全称功能描述
-c--create创建新的存档文件,是生成 tar 包的基础选项
-x--extract从已有的存档文件中提取文件,用于恢复数据
-t--list列出存档文件中的内容,无需提取即可查看包内文件结构
-v--verbose以详细模式运行,显示归档或提取过程中的文件名称,便于跟踪操作
-f--file=指定存档文件的名称,该选项后必须紧跟存档文件名,是 tar 命令的必选参数之一
-p--preserve-permissions提取文件时保留原始文件和目录的权限,避免因 umask 设置导致权限丢失
-z--gzip使用 gzip 压缩算法,生成的存档文件后缀通常为.tar.gz 或.tgz,压缩速度快、兼容性强
-j--bzip2采用 bzip2 压缩算法,存档文件后缀为.tar.bz2,压缩率高于 gzip,但兼容性稍弱
-J--xz运用 xz 压缩算法,存档文件后缀为.tar.xz,压缩率在三种方式中最高,适合对压缩率要求高的场景

2. tar 命令关键操作实践

  • 创建基础存档:将指定文件或目录打包成未压缩的 tar 存档。例如,将 file1、file2、file3 三个文件归档为 archive.tar,命令为tar -cf archive.tar file1 file2 file3。需注意,ACL 和 SELinux 等高级权限不会自动存储到 tar 存档中,需添加--xattrs选项才能保留。

  • 查看存档内容:无需提取存档,即可查看其中的文件列表。如查看 /root/etc.tar 存档的内容,命令为tar -tf /root/etc.tar,执行后会列出存档内的目录结构与文件名称。

  • 提取存档文件:从存档中恢复文件时,可结合 - p 选项保留权限。例如,将 /root/myscripts.tar 存档提取到 /root/scripts 目录,需先创建目标目录mkdir /root/scripts,进入该目录cd /root/scripts,再执行提取命令tar -xpf /root/myscripts.tar

  • 创建压缩存档:根据需求选择合适的压缩算法创建压缩存档。使用 gzip 压缩 /etc 目录生成 /etcbackup.tar.gz,命令为tar -czf /root/etcbackup.tar.gz /etc;用 bzip2 压缩 /var/log 目录生成 logbackup.tar.bz2,命令为tar -cjf /root/logbackup.tar.bz2 /var/log;通过 xz 压缩 /etc/ssh 目录生成 sshconfig.tar.xz,命令为tar -cJf /root/sshconfig.tar.xz /etc/ssh

  • 提取压缩存档:针对不同压缩格式的存档,需使用对应选项提取。提取 gzip 格式的 /etcbackup.tar.gz,命令为tar -xzf /root/etcbackup.tar.gz;提取 bzip2 格式的 logbackup.tar.bz2,命令为tar -xjf /root/logbackup.tar.bz2;提取 xz 格式的 sshbackup.tar.xz,命令为tar -xJf /root/sshbackup.tar.xz

二、系统间安全传输文件:SSH 协议下的两种方案

在跨系统文件传输场景中,基于 SSH 协议的 scp 和 sftp 命令是安全可靠的选择,它们通过 SSH 服务器进行身份验证,并对传输数据加密,保障数据传输安全。

1. Secure Copy(scp):简单高效的文件传输

scp 命令可实现本地与远程系统间的文件或目录传输,操作简洁,核心功能如下:

  • 单个 / 多个文件传输:从本地向远程传输文件时,格式为scp 本地文件路径 远程用户@远程主机:远程目标路径。例如,将本地的 /etc/yum.conf 和 /etc/hosts 文件传输到 remoteuser 用户所在的 remotehost 主机的 /home/remoteuser 目录,命令为scp /etc/yum.conf /etc/hosts remoteuser@remotehost:/home/remoteuser,执行后输入远程用户密码即可开始传输。从远程向本地传输文件时,格式为scp 远程用户@远程主机:远程文件路径 本地目标路径,如将 remotehost 主机的 /etc/hostname 文件传输到本地 /home/user 目录,命令为scp remoteuser@remotehost:/etc/hostname /home/user

  • 目录传输:传输目录需添加 - r 选项(递归传输),格式与文件传输类似。例如,从远程 remoteuser 用户所在主机的 /var/log 目录传输到本地 /tmp 目录,命令为scp -r remoteuser@remotehost:/var/log /tmp,输入密码后将递归传输整个目录及其中的文件。

2. 安全文件传输程序(sftp):交互式的文件管理

sftp 命令提供类似 FTP 的交互式操作界面,支持在本地与远程系统间进行文件传输、目录管理等操作,功能更灵活,常用操作如下:

  • 建立 sftp 连接:通过ssh远程用户@远程主机命令建立连接,例如ssh remoteuser@remotehost,输入远程用户密码后,进入 sftp 交互模式,提示符变为sftp>

  • 基础文件操作命令:在 sftp 交互模式中,可使用多种命令管理文件。ls查看远程当前目录文件,cd切换远程目录,mkdir在远程创建目录,rmdir删除远程空目录,pwd显示远程当前目录路径,put 本地文件路径将本地文件上传到远程当前目录,get 远程文件路径将远程文件下载到本地当前目录,exit退出 sftp 会话。

  • 本地命令执行:在 sftp 会话中,若需执行本地系统命令,只需在命令前添加 “l” 前缀。例如,lpwd显示本地当前目录路径,lls查看本地当前目录文件。

  • 目录递归传输:上传本地目录到远程时,使用put -r 本地目录路径命令;下载远程目录到本地时,使用get -r 远程目录路径命令。例如,上传本地 directory 目录到远程当前目录,命令为put -r directory,会递归上传目录内所有文件和子目录。

  • 非交互式文件获取:无需进入交互式会话,可直接通过单条命令获取远程文件,格式为scp 远程用户@远程主机:远程文件路径 本地目标路径,例如scp remoteuser@remotehost:/home/remoteuser/remotefile ./,直接将远程 remotefile 文件下载到本地当前目录。

三、系统间文件同步:rsync 的高效同步方案

rsync 命令是跨系统文件同步的高效工具,其核心优势在于采用差异化同步算法,仅同步文件的更改部分,而非复制整个文件,大幅减少数据传输量,提高同步效率,尤其适合大文件或频繁更新文件的同步场景。

rsync 核心选项与功能

rsync 命令的常用选项及功能如下:

  • 模拟同步(-n):使用 - n 选项可进行模拟同步操作,仅显示需要同步的文件清单,不实际执行同步,便于提前确认同步内容是否正确,避免误操作。

  • 详细模式(-v):-v 选项(--verbose)开启详细模式,同步过程中显示文件同步状态、传输速度等详细信息,便于跟踪同步进度和排查问题。

  • 归档模式(-a):-a 选项(--archive)是 rsync 的核心选项,开启后会自动启用多个子选项,实现全面的目录同步,所包含的子选项及功能如下表:

子选项英文全称功能描述
-r--recursive以递归方式同步整个目录树,包括所有子目录和文件
-l--links同步符号链接文件,保留链接属性
-p--perms保留文件和目录的权限设置
-t--times保留文件的时间戳信息,确保同步后文件时间与源文件一致
-g--group保留文件所属的组权限
-o--owner保留文件的所有者信息
-D--devices同步设备文件,适用于系统文件同步场景

此外,-H 选项可保留硬链接,-A 选项保留 ACL(访问控制列表)权限,-X 选项保留 SELinux 上下文,根据实际需求组合使用这些选项,可实现更全面的同步效果。

3. rsync 同步操作实践

  • 本地目录同步:将本地 /var/log 目录同步到 /tmp 目录,命令为rsync -av /var/1og /tmp,-a 选项确保目录递归同步并保留各类属性,-v 选项显示同步详情。执行后,rsync 会仅同步 /var/log 与 /tmp/log 之间有差异的文件部分,输出同步的文件列表、数据传输量、传输速度等信息。

  • 远程目录同步:将远程 remotehost 主机的 /var/log 目录同步到本地 /tmp 目录,命令为rsync -av remotehost:/var/1og /tmp,输入远程主机对应用户密码后,开始远程同步操作。同步过程中,同样仅传输差异数据,显著提升同步效率,尤其适合跨网络的大目录同步场景。

总结

tar 命令满足本地文件归档与压缩需求,支持多种压缩算法适配不同场景;scp 和 sftp 基于 SSH 协议,分别提供简单高效和交互式的安全文件传输方案;rsync 则通过差异化同步算法,实现跨系统文件的高效同步。

掌握这些工具的使用方法与核心技巧,能帮助系统管理员高效完成 Linux 系统中的文件管理工作,提升系统运维效率与数据安全性,为后续更复杂的系统管理任务打下坚实基础。

http://www.xdnf.cn/news/19361.html

相关文章:

  • Xshell自动化脚本大赛
  • LightGBM(Light Gradient Boosting Machine,轻量级梯度提升机)梳理总结
  • 互联网大厂AI面试:从大模型原理到场景应用的深度解析
  • 【shell】Shell脚本中的if判断条件和文件测试操作符
  • shell编程基础入门-1
  • Spring : 事务管理
  • 深度学习函数
  • 洛谷 P1395 会议 -普及/提高-
  • 一款基于selenium的前端验证码绕过爆破工具
  • java怎么实现根据指标预警的功能
  • C++多态介绍
  • 【Leetcode】17、电话号码的字母组合
  • 哪些人需要考道路运输安全员证?政策要求与适用范围
  • C++day2作业
  • 突破视界的边界:16公里远距离无人机图传模块全面解析
  • 毕业项目推荐:47-基于yolov8/yolov5/yolo11的焊缝质量检测识别系统(Python+卷积神经网络)
  • pip 镜像源配置(清华/阿里/豆瓣)详解
  • 智瞰风评 - 基于大语言模型的个人征信报告风险分析师
  • k8s--efk日志收集
  • 用简单仿真链路产生 WiFi CSI(不依赖专用工具箱,matlab实现)
  • Java数组入门教程:零基础掌握数组定义与遍历+新手避坑指南
  • Python3 lambda(匿名函数)
  • 轻量xlsx读取库xlsx_drone的编译与测试
  • 元素滚动scrollIntoView
  • A5M2(数据库管理工具)下载安装
  • 谈物质的运动与运动的物质
  • 智能消防栓闷盖终端:让城市消防管理更智慧高效
  • Robolectric拿到当前的Activity
  • 基于轴重转移补偿和多轴协调的粘着控制方法研究
  • 线性回归算法