1、第8章文件管理第八章、文件管理一、软件包管理 1、RPM概述 、rpm简介 RPM最早是由Red Hat研制。 RPM是GNU/Linux下软件资源最丰富的软件包类型。 RPM的软件包分为二进制包(Binary)以及源代码包(Source)两种。 RPM软件包的安装、卸载、管理和升级只需一个命令即可完成。 、RPM功能 安装、卸载、升级和管理软件。 组件查询功能。 验证功能。 软件包GPG和MD5数字签名的导入、验证和发布。 软件包依赖处理。告诉用户缺什么依赖包,但不能自行解决。 选择安装。 网络远程安装功能。 、软件包格式 举例:vsftpd (软件名)。2.0.5-10.el5该软件的版本
2、号所依赖的发行版。i386 (运行该软件所需的最低硬件架构) 硬件架构描述的是该软件对计算机架构的最低要求 常用的架构类型有: i386 适用于任何现有的Intel兼容计算机 noarch 适用于所有架构 ppc 适于PowerPC系统,例如Apple Power Macintosh x86_64 适于64位Intel处理器 2、使用rpm命令rpm 选项 软件包常用rpm操作模式 模 式 选 项 开 关Query 查询模式 -qVerify 校验模式 -VInstall/Upgrade/Freshen 安装/升级/更新 -i/-U/-FUninstall 卸载 -eRebuild Datab
3、ase 重构数据库 -rebuilddb 、安装模式 (-i) 安装过程:、检查软件包的依赖、检查软件包的冲突、执行安装前的脚本程序、处理配置文件、解压软件包并存放到相应位置、执行安装后的脚本程序、更新RPM数据库 安装模式常用选项、-h在软件包被解压时,输出50个bash符号(),如果与通用选项-v配合,得到更友好的输出。、-nodeps在安装或升级之前,不进行依赖性检测。、-replacepkgs安装软件包,即使软件包已经被安装到了系统中。、-test不安装软件包,仅仅检测并报告可能的冲突。 例子:软件包为 vsftpd-2.0.5-10.el5.i386.rpm例1:安装一个软件包: r
4、pm -ivh vsftpd-2.0.5-10.el5.i386.rpm例2:如果只想测试一个软件包的安装情况或只想了解可能的依赖关系 rpm -ivh -test vsftpd-2.0.5-10.el5.i386.rpm下图的例子中:vsftpd软件包是已安装的,dhcp-devel软件包是没有安装的!例3:对于一个已经被安装的软件包,下面的命令重新安装它。这种安装方法会修补已被删除的文件,而不会覆盖已存在的文件。 rpm -ivh -replacepkgs vsftpd-2.0.5-10.el5.i386.rpm例4:有些软件有依存关系,要想直接强制安装所需要的包。 rpm -ivh -n
5、odeps 包全名 不推荐这样作,这样安装后的软件包可能无法正常运行。例5:通过网络安装。如ftp服务器# rpm -ivh ftp:/能解析的服务器名称/包的路径及完整名字 注意:在安装模式中,当一次安装多个包时,rpm将设法按依赖顺序安装包。换句话说,必需首先被安装。 、卸载模式 (-e) 卸载模式执行的动作:、检查软件包的依赖。、执行卸载前的脚本程序。、检查配置文件。rpm卸载之前会检查软件包中的配置文件是否修改了,如果修改了,rpm要换个名字保存文件,文件名一般是“原文件名+.rpmsave”。、卸载。注意,如果其中有文件属于其它软件包(即两个软件包拥有一个相同名字的文件),rpm并不
6、将其删除。、执行卸载后的脚本程序。、更新RPM数据库。 卸载模式常用选项:、-nodeps在卸载前不检测依赖关系。、-test不真正卸载软件包,仅仅尝试它们。与通用选项 vv联合使用,在调试时很有用。 rpm -e vsftpd 注意:包的卸载不需要它的完整名字。安装时要完整名字,因为是在引用一个文件。已安装的软件包仅引用他们的包名称。包的名称好似版本号之前的所有内容。 、升级模式 (-U/ -F)常用选项:-oldpackage允许用旧软件包替换一个新软件包。-U 和 F 的区别:-U升级一个不存在的软件包,安装并升级它。-F只升级存在的旧软件包,没有则放弃,并不按装。 、查询模式 (-q)
7、可以从RPM数据库中查询多种有用的信息。对rpm数据库有读权限的任何用户都能执行查询操作。默认情况下,全部用户都拥有读权限。在查询时,包的名称必须精确匹配,不允许使用通配符。 查询模式常用选项:常用的 #rpm -ql-a查询所有已安装的软件包。-f查询包含指定文件的软件包。-p查询未安装的软件包。这个文件可以为一个远程ftp或http服务器中的包,这时该包头部将被下载并查询。-c只显示软件包中的配置文件。-d只显示软件包中的文档文件。-info显示软件包信息。包括名称,版本,描述。-l列出软件包中的文件。例1:列出vsftpd软件包的版本号。 rpm -q vsftpd例2:查询系统中已安装
8、的所有软件包。 rpm -qa 例3:在RPM数据库中查询指定文件的软件包。例4:列出已安装软件包中所包含的文件。 rpm -ql setup例5:有时候用户需要清楚准备安装的软件包包括哪些内容,以及将会安装到哪里,使用 p 选项。 rpm -qlp vsftpd-2.0.5-10.el5.i386.rpm (下图是此包的一部分内容)例6:再配上 c选项将会只显示待安装包中的配置文件。 rpm -qlpc vsftpd-2.0.5-10.el5.i386.rpm 、校验模式 (-V) 要检查软件包中的文件是否出现问题,用户可以使用这个模式。RPM将文件当前的属性和安装包时放入RPM数据库中的信
9、息进行比较。如果一切校验均正常,将不会产生任何输出。如果有不一致的地方,就会显示出来。输出格式是一个8位长的字符串,随后出现的“c”用以指定配置文件,最后是文件名。8位子符的每一位用来表示文件与RPM数据库中的一种属性的比较结果,“.”表示验证通过,“?”表示校验可能无法进行(例如:文件禁止了读权限),而如果某一种属性校验失败,就用下图表中的相应字符码表示。 校验模式输出的字符码:字符码 说 明S文件大小不一致M模式不一致(包含权限和文件类型)5md5校验和不一致D设备主要/次要编号不匹配L路径不匹配U拥有者关系不一致G所属主关系不一致T文件修改时间不一致 校验模式常用选项:此模式所用到的选项
10、与查询模式相同。例1:下面命令显示出配置文件 /etc/passwd 已经被更改,其现在的大小、校验和、修改时间都发生了改变: rpm -Vf /etc/passwd例2:对所有安装的文件进行校验。 rpm -Va 、重新构建数据库 (-rebuilddb) RPM在它的数据库中保留已安装包的记录。必须经常重新生成这个数据库,以确保RPM关于已安装包的信息是最新的。 例1:根据已安装的软件包头部,重建数据库索引: rpm -rebuilddb 例2:详细输出整个过程 rpm -rebuilddb -vv二、通过Yum管理软件包Yum(Yellow dog Updater Modified)是一
11、个针对RPM的非常方便的自动升级和软件包管理工具。Yum能够自动计算出程序之间的相互关联性,并且计算出完成软件包需要哪些步骤。不用管理员手工升级每一台机器。安装软件时也不会被那些关联性的问题困扰。Yum与同类工具相比,不仅速度快,更加可靠,而且还提供了很多其他工具所没有提供的功能:多个软件仓库简单的配置文件正确的依赖性检查简洁的界面 1、基本概念 软件仓库是一个预备的目录或是一个网站。包含了软件包和索引文件。 GPG公钥每个软件都包含一和数字签名,以验证它们的来源。 2、使用Yum 由于RHEL5的服务是收费的,可以通过Fedora站点的更新服务。Fedora基于Red Hat,是Red Ha
12、t为了取代其个人领域所推出的发行版,二者在软件版本方面有一定的共同性。 、安装发行文件 发行文件的作用是向Yum提供软件仓库的位置,以及验证软件包时所用的GPG公钥。这通常是必备的过程。我们要使用的是Fedora的更新服务器,因此要安装的就是fedora提供的发行文件。 进入文件的存放目录(/root/soft),使用下面的命令安装他们到系统中:rpm -Uvh fedora-release-7-3.noarch.rpm fedora-release-notes-7.0.0-1.noarch.rpm 、清除原始文件 对于每个Yum操作,其都要从已配置的软件仓库中下载软件包信息,并将已下载的数据
13、文件和软件包保存在缓存中(/var/cache/yum)以复用。但对于一个要执行的新任务来说,这样可能会导致错误的依赖关系和冲突,因此,建议使用下面命令清除存留在系统中的原始数据: 清除原始文件(清除缓存)yum clean all 、更新软件包举例更新vsftpd软件包yum update vsftpd 、yum也支持软件包的安装操作。但yum包来源于网络中的更新服务器,因此包更新,包的种类更全。 要安装一个系统中不存在的软件包,例如是vsftpd包:yum install vsftpd 、网络下载包wget 网络路径/文件名 更改DNS:vim /etc/resolv.conf也可以装上光
14、盘里的 netconfig包,就可以直接在setup命令里设置了。三、系统备份管理 1、备份策略 完全备份:备份系统中的所有数据。 增量备份:只备份上次备份以后有变化的数据。 差分备份:只备份上次完全备份以后有变化的数据。 2、确定要备份的内容 、Linux大多数情况下,备份处理的仅是文件的打包和解包 、一般情况下,以下目录需要备份:/etc 包含所有核心配置文件。这其中包括网络配置、系统名称、防火墙规则、用户、组,以及其他全局系统项。/var 包含系统守护进程(服务)所使用的信息,包括DNS配置、DHCP租期、邮件缓存文件、HTTP服务文件、数据库实例配置等等。/home 包含所有用户的默认
15、用户主目录。这包含他们的个人设置、已下载的文件和用户不希望失去的其他信息。/root 是根(root)用户的主目录。/opt 是安装许多非系统文件的地方。大多数第三方软件就安装在这里,例如:OpenOffice、JDK和其他软件默认就安装在这里。 、有些目录是不应该考虑备份的:/proc 应该永远不要备份这个目录。它不是一个真实的文件系统,而是运行内核环境的虚拟化视图。备份这个目录只是在浪费资源。/dev 包含硬件设备的文件表示。如果计划还原到一个空白的系统,那就可以备份 /dev。然而,如果计划还原到一个已安装的Linux系统,那么备份/dev,是没有必要的。 建议:在实际环境中,如果希望确
16、保数据不丢失,建议备份除/proc目录外的整个系统。如果最担心用户和配置,仅需要备份/etc、/var、/home和/root目录。 3、使用备份工具 (传统的是tar和dump备份工具) 、tar tar 是tape archive(磁带归档)的缩写,是已移植到Linux中的经典UNIX命令。tar 与文件系统无关,是一个基于文件的命令,它本质是连续的、首尾相连地堆放文件。当创建一个tar档案的文件时,扩展名通常为“.tar”。这是为了方便,不是必须的。 tar 选项 档案文件 原始文件或目录说明:使用该命令时,需要指定主选项和辅助选项,主选项告诉tar要做什么,辅选项则提供一些可选的附加操
17、作。另外不要视图对来源文件用绝对路径表示,因为在默认情况下tar会自动删除路径中的“/”根标识,以防止在还原时覆盖目标文件系统中的内容。 常用选项:主选项:-c创建新的档案文件。如果用户需要备份一个目录或一些文件,就要选择这个选项。-r把要存档的文件追加到档案文件的末尾。(针对备份时,用户忘记备份的文件)。-t列出档案文件的内容,查看已经备份了哪些文件。-u更新文件。就是说,用新增的文件取代源备份的文件,如果在备份文件中没有找到要更新的文件,则把它追加到备份文件的最后。-x从档案文件中释放文件。 辅助选项:-C(大写)转到指定的目录。-exclude不指定文件包含在内。-f指定档案文件或设备,
18、这个选项通常是必选的。-k保存已经存在的文件。例如如果把某个文件还原,在还原的过程中,遇到相同的文件,不会进行覆盖。-m在还原文件时,把所有文件的修改时间设定为现在。-M创建多卷的档案文件,以便在几个磁盘中存放。-v详细报告tar处理的文件信息。如无此选项,tar不报告文件信息。-z调用gzip来压缩/解压缩文件,加上该选项后,可以将档案文件进行压缩,但还原时也一定要使用该选项进行解压缩。例1:将boot目录中的所有内容归档到test.tar文件中。 tar -cf test.tar ./boot例2:查看test.tar中备份了那些文件 tar -tf test.tar例3:在当前目录下,释
19、放test.tar中的所有数据。 tar -xf test.tar例4:加上-z选项把备份文件进行压缩。 tar -czf test.tar.gz boot例5:在释放用 -z选项压缩的备份文件时,也要加上 -z选项。 tar -xzf test.tar.gz(此处我作实验的时候,没有加 z选项也能释放压缩的备份文件。)例6:要将数据保存在软盘中,应在软盘驱动器中放入第一张软盘,然后使用带M选项的tar命令。当空间满时需要插入第二张软盘时,tar命令会提示用户,将一张新的软盘放入软盘驱动器中,之后按回车键继续: tar -cMf /dev/fd0 ./root 在还原时,也必须使用M选项才能把
20、存储在多个介质中的档案还原:tar -xMf /dev/fd0 、dump和restoredump是直接读取较低层的文件系统而不是个别的文件,可检查并确定ext2/3文件系统上的文件需备份。restore用于从备份媒体还原文件。restore命令执行备份的逆向功能。首先还原文件系统的完全备份,而后续的增量备份可以在已还原的完全备份之上覆盖。也可以从完全或部分备份中还原单独的文件或目录树。 特点 直接读取文件系统 不影响文件时间标签 仅能处理ext2/3文件系统 dumpdump 选项 设备名称 文件系统常用选项:-(0123456789)备份的等级。 0表示完全的系统备份,管理员要定期执行以保
21、存整个系统。对于后续的备份,可以使用(19)来代替0,以改变备份级别。1级备份会保存自从执行0级别备份以来更改过的所有文件。2级备份会保存自从执行1级备份以来更改过的所有文件,以此类推。使用tar和脚本可以执行相同功能,但要求脚本创建人员提供一种机制来确定上次备份是何时执行的。Dump具有它自己的机制,即它在执行备份时会输出一个更新文件(/etc/dumpdates)。这个更新文件将在每次执行0级备份时被重设。后续级别的备份会保留它们的标记,直至执行另一次备份。-u备份完毕后,在/etc/dumpdates中记录备份的文件系统、备份的等级、日期与时间等。如果不赋予该参数,增量备份不能正确地工作
22、。-f指定备份设备。缺省为/dev/tape。例1:对 /dev/sda1分区中的文件系统完全备份到 /dev/hda 介质中。 dump -0uf /dev/hda /dev/sda1例2:使用另一个设备/dev/hdb对/dev/sda1分区里的增量数据进行备份。 dump -1uf /dev/hdb /dev/sda1 restorerestore 选项 备份介质或档案 文件或目录常用选项:-f从指定的介质或档案中读取备份数据,以进行还原操作。-r还原备份介质中的所有内容。-i使用互动模式,在进行还原操作时,使用restore界面。-t仅列出备份介质中的内容。-x从备份介质中提取指定的文
23、件或目录。-v显示指令执行过程。例1:还原前建议验证备份介质上内容。 restore -tf /dev/had例2:还原时,保证先还原完全备份的内容,之后按照增量备份顺序逐一还原。 restore -rf /dev/hda restore -rf /dev/hdb例3:还原备份介质/dev/hda中的一个单独文件(aquota.user),而不是整个系统。 restore -xf /dev/had /1.txt /2.txt y n y 如下图:是整个过程(有一个提示让输入选参数,输上“1”。例4:提供的另外一个特性是交互模式 restore -if /dev/had restore 在此处用
24、 add 要还原的文件名 也可以键入help帮助,用ls显示所有备份文件,add选中之后 extract (有一个选项参数,是“1”)y n y 如下图: 实验:利用系统备份在系统荡了的情况下还原系统。 1、先备份系统文件到一个物理介质上,然后把系统手工搞荡。 2、利用系统光盘启动引导,在启动界面输入灾难恢复命令“Linux rescue”,经过好几步到灾难恢复界面。 3、在根下任意创建一个目录,并将原来的坏系统卷,挂载到该目录中。 4、进入该目录,执行还原命令。(rescore -rf /dev/系统备份的卷) 5、还原完成后,输入“grub”命令进入grub激活界面。再输上“root (h
25、d0,0),”提示正确后,再进行命令 “setup (hd0)”解释:在此的hd0是grub识别的硬件设备,它不分IDE还是SCSI等,都是从hd0开始的。 hd0,0第一个识别的设备上的第一个分区; Hd1,2第二个识别的设备上的第三个分区; SCSI优先于IDE接口的排在前面。 此处一般是hd0,0的多,我做的是这样。 6、grub成功后“quit”退出。 7、再进行交换分区激活mkswap /dev/交换分区所在的卷符 8、“reboot”重启。续:如果在第五步grub中不识别设备。可重启按照装系统走一把,注意的是别去改变原来的分区,备份的那块卷更是不要动。此操作就是为了把boot引导出来,能够在激活grub时成功,红帽系列别的系统盘也可以做到。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1