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