Linux系统的备份方法(运维工程师必备技能)

Linux 系 统 的 备 份 方 法

一 、 基 础 知 识

1 、 分 区

(1 ) 分 区 的 意 义

为什么要进行分区?是因为如果分了区

A、可以增块数据的访问速度,因为对数据进行检索时,硬盘上的磁头就可以从数据所

在分区的位置来对硬盘进行检索,更快地找到数据,例如说分了区,数据位于磁盘

的某一分区内,只检索这个分区比检索整个硬盘要快多了。

B、可以最大限度地减少数据的损失,例如,在Windows下我们分了C盘,D盘,如

果我们把数据放在D盘,那重装系统后D盘上的数据是不会丢失的。

(2 ) 分 区 的 类 型

以上例子说明,分区的概念是不分操作系统的,Linux下肯定也有分区,所以首先我们

应该知道分区的基本概念。分区类型有主分区,扩展分区和逻辑分区,一般一个硬盘最多可

以分四个主分区,但这并不表示最多可以分四个分区,因为还有扩展分区的概念,例如D

盘就属于扩展分区里面的逻辑分区,Linux均支持这些分区,而作为服务器的Linux系统

一盘都比较单纯,一般会划分主分区来建立文件系统。

而由于硬盘类型的不同,在Linux下的表示方式不同,例如:第一个SCSI硬盘在Linux

下叫/dev/sda,而第一个IDE硬盘在Linux下叫/dev/hda, 请注意它们之间的不

同,一般服务器使用SCSI硬盘,应该叫做/dev/sda,千万注意,我

以下所有的例子都是以IDE硬盘来演示,请自己进行修改 。同时第一个

SCSI硬盘的第一个分区叫/dev/sda1,第二个叫/dev/sda2,以此类推。

(3 ) 文 件 系 统

那什么是文件系统?简单些说吧,文件系统就是对文件的存放方式和检索方式,每个操

作系统都运行在文件系统之上,Windows是fat32和ntfs,而Linux就是ext2,ext3等

等了,这些平时我们所说的东西就是文件系统。所以分了区之后就应该在它上面建立文件系

统啦。

Linux是如何管理分区的呢?Unix或者Linux把设备都作为文件来看待,也就是说,

无论是什么设备,在Linux下就是一个文件。分区也是一个文件,/dev/sda1/

dev/sda2就是两个分区。Linux是使用一整个分区来作虚拟内存的,这个虚拟内存空间叫

swap。

(4 ) 挂 载

既然Linux都是以目录的方式来管理文件的,Linux下所有文件都以目录树的形式来

存放,那么Linux如何以这个形式来使用分区的?这就涉及到一个挂载的概念了,Linux

是把分区挂载在“挂载点”上的,所有的文件的绝对路径都以“/”开头,也就是根目录,然后

在这个目录下挂载分区,或者建立目录或文件,其中有些目录是作为作为挂载点存在,它一

般是空的目录。

我们举一个例子,如下所示,我们有两个分区,分别是根分区和usr分区,这些分区已

经建立了文件系统。以下是根分区的结构,根分区中有这些文件和目录,其中有一个目录

usr,它现在是空的。

/-|

|-etc

|-usr

|

|-boot

那我们如何将usr分区使用起来呢?简单,我们把usr分区挂载到根分区下的usr目

录里面就好了,这个操作过程叫做mount。我们将执行以下操作:

#mount-text3/dev/hda5/usr

这个例子是把文件系统类型为ext3的usr分区(记得Linux下分区是以文件的形式存

在的,/dev/hda5就是我们假设的usr分区)挂载在/分区下的usr目录下。那文件树就变

成:

/-|

|-etc

|-usr/-

| |-bin

| |-local

| |-share

| |-……

|-boot

于是我们就可以通过cd/usr进入/usr目录来访问usr分区里面的文件了。所以这个

/usr目录就叫作“挂载点”。

最后我们以一个例子来说明。打开/etc/fstab文件,这个文件描述了系统中的分区和

它的挂载点。

#vi/etc/fstab

分区文件的位置            挂载点                       文件系统类型             挂载选项

/dev/hda1是boot分区,它挂载在/boot之下,而/dev/hda2分区是作为虚拟内存空间

来使用的,/dev/hda3是根分区。

2 、Linux 系 统 的 启 动 顺 序

在这里当不不会对Linux系统的启动顺序做过多的说明,因为我们只要知道和备份相

关的东西就好了。

一般来说电脑在启动过程中,先进入一个叫做启动管理器的程序,这个程序位于硬盘的

最初部份,这部份名称叫mbr,再由启动管理器引导进入不同的操作系统。例如Linux操

作系统在启动时先进入Grub启动管理器,然后再由它进入/boot目录或/boot分区,取出

Linux操作系统的内核,启动这个内核,由内核来进行后面的操作。

那和备份有什么关系呢?关系就是,我们还要安装这个启动管理器!!

可能你会想,为什么用ghost来备份windows,在还原的时候不需要安装启动管理器?

答案就是,不管你在ghost备份或者还原C盘的时候,都不会去动到这个启动管理器,它

位于硬盘的起始部份,不在C盘分区里面。所以你还原,它还存在,就不需要安装了,而

Linux也是一样的。那为什么我前面还是说要安装这个启动管理器?因为我假设我们还原的

时候,是以一个新的硬盘来还原的,不是重装哦,是还原哦。

3 、 备 份 还原 原Linux 系 统 的 思 路

我们备份和还原Linux系统的思路就是:

1、备份时,很简单,复制就行,备份系统里面所有分区里面的所有的文件,注意的是

备份的文件中包括系统里面对于服务器硬件的描述,对分区的描述,对系统各个文

件属性的描述。

2、还原的时候,我们使用一个新的硬盘,基于第1点蓝字部份的描述,我们的硬盘最

好与备份前的硬盘是同一型号和同一大小,如果不行,至少是同一类型的硬盘,也

就是说,备份前是SCSI硬盘,那还原时也要SCSI硬盘(因为备份中某个文件对硬

盘的描述是/dev/sda,我们装一个IDE硬盘,变成了/dev/hda,那么会对系统造

成混乱的,请参照(1)分区的类型),硬盘需要重新进行分区,分区和备份前一样,

也就是说,因为我们备份的系统里面有文件(/etc/fstab)对系统使用的分区进行

了描述,我们最好不去改变它。

3、正如你所愿,保存备份文件的硬盘大小可不限,也可以在同一个硬盘上备份不同机

器的系统。

4、还原时,首先分区,然后创建文件系统,进入复制后的系统,安装启动管理器,OK,

重启吧,还原好了。

二 、 准 备 工 作

我们要备份,当然要先准备好一个硬盘,来存放备份的文件啦,但是这个硬盘,我们也

要给它进行分区,也要进行文件系统的创建,否则我们没法使用的。我认为,要备份Linux

系统,最好也使用Linux的文件系统,我们当然不会拿这个硬盘去拷电影吧。所以,专用

硬盘专门用途,就创建Linux文件系统ext3好了,而且只创建一个分区(你不知道要备份

的文件有多大,所以最好只创建一个分区,保证不会因为分区问题备到一半没了空间)。

要创建Linux所使用的ext3文件系统,你可以在windows下使用分区魔术师。

如果不打算这样做的话,那随便使用一个Linux服务器也行。随便找一台不在线的服

务器,关机,把这块硬盘插进去,如果你要使用移动硬盘,有USB接口,那就更加简单了,

直接插到USB口就好了。

然后在Linux下运行

#fdisk-l

这里就可以看到有两个硬盘,一个就是正在使用的Linux主机了,有40G,插在第一个IDE

口,所以是/dev/hda,另外一个IDE硬盘是没有使用的,它有2G,上面没有任何分区,

就是我们新的硬盘,插在第二个IDE口,所以被认出是/dev/hdb,请注意服务器所使用的

SCSI一盘是sda,请自行区分。

好了,开始进行分区,对某个硬盘进行分区的命令是fdisk硬盘,例如我们要输入的

#fdisk/dev/hdb

1、输入n,意思就是创建一个分区

2、这时弹出来一个问题要回答,是要创建扩展分区还是主分区,我们要创建一个主分区,

这里再打入p

3、又弹出来一个问题,就是分区号,你可以看到只能分四个主分区的,呵呵,我们分区号

就写1吧。

4、又有问题要回答,这里是第一个扇区和最后一个扇区的值,也就是分区的大小,我们按

默认的值,也就是说整个硬盘也就分一个区。

5、这时Command(mforhelp):又出现了,按一下p,意思是查看分区的结果,这时

会显示你分了哪个区了,这个区的分区类型是什么,分区范围是什么。

6、分区完了,显示结果也是我们所要求的,那么就要写入硬盘保存,这时候输入w,表示

将分区的结果写回硬盘,这时分区程序显示同步完成后自动退出了。

分区完成,我们可以开始创建文件系统了。输入以下命令来创建一个ext3文件系统。

#mke2fs-j/dev/hdb1

没有什么错误,就表明我们又分好区又创建好文件系统了。

接下来还要再准备一张Linux系统维护盘,http://distrowatch.com/systemrescue,如

这一张,可以光盘启动的,可以识别出服务器的各种硬件才行,最重要的当是能识别出服务

器的硬盘啦,这个光盘版的最新版本应该没有问题。

tar软件需要最新版本,不然在32位平台上无法创建大于2G的压缩文件,关于如何安装

最新版本的tar,每个Linux版本不同的啦,如果是redhat,那么请用RPM包吧。

三 、 备 份

1 、 光 盘 启 动 , 查 看 设 备 信 息

把分好区,创建好文件系统的硬盘插入要分区的服务器的硬盘插槽,如果是USB接口

的话可在线插到USB接口中,然后用上面准备工作中所说的光盘放入光驱中,使用光盘来

启动系统。

当然这时还是要输入fdisk-l来查看有没有认出硬盘的。

看出和原来有什么区别没?yes,我们对备份的硬盘或者移动硬盘已经分好区了,分区是/

dev/hdb1。

2 、 将 各个 个Linux 分 区 挂 载 起 来

我们接下来就把待备份系统的分区和新硬盘的分区挂载进系统中的/mnt目录,要挂载

哪些分区并且将它们挂载在哪里呢,这时候就要参考上面提到的/etc/fstab文件了,参照

它,分别运行

#mount-text3/dev/hda3/mnt

#mount-text2/dev/hda1/mnt/boot

(挂载待备份系统的分区)

#mount-text3/dev/hdb1/mnt/mnt

(挂载新硬盘的分区)

完成之后运行df-k来查看挂载是否成功。see?它们全都挂载成功,并且显示了它们

使用了百分之几的空间。

3 、 进 行 备 份

好了,这时就可以进行备份的工作了,输入下面的命令

#cp/mnt/etc/fstab/mnt/mnt/full-backup-sas-`date'+%d-%B-%Y'`.fstab.txt

#tar-zcvpf./mnt/full-backup-sas-`date'+%d-%B-%Y'`.tar.gz\

--directory/mnt—exclude=./mnt .2>./mnt/error.txt

不要忘了2之前的点号,以上先拷贝/etc/fstab,里面保存了分区信息,我们后面还原的时

候要用到的,然后开始备份,并将标准错误重定向到error.txt(2>就是标准错误重定向),

当命令运行完成之后,可以查看这个error.txt来查看是否有什么重要错误

上列的指令指定了选项''z''(压缩;备份资料经由''gzip''压缩),''c''(建立;一个archive档开

始被建立),''v''(verbose;显示出已经备份好的档案),''p''(允许保存文件的属性;保护的资

料将会被''记忆'',可以被回复)。''f''(档案)选项後面接的是的要写入的archive档(或装置)

名称,''--directory''选项告知tar在开始备份前首先跳到以下的档案路径(在本例中是

''/mnt''目录)。''--exclude''选项告知tar不要备份所指定的档案或目录。最後,''.''符号

告知tar要备份目前目录中的所有东西。

OK,备份的工作完成,呵呵,这样在你的移动硬盘或者新加的硬盘就已经有Linux系统的

备份了。

4 、 取 下 硬 盘

我们备份完了进入/mnt/mnt目录看看我们备份的文件是不是正确的,如果error.txt是空

的,或者里面的错误不是什么大问题,那么我们就认为备份已经完成,可以取消挂载并将系

统重启了。

#shutdown-hnow

关闭机子,取下备份硬盘,然后就重启机子,给它正常工作吧。

三 、 恢 复 系 统

按照我们还原的思路,恢复系统就是把文件复制回来,然后安装启动管理器,这个启动

管理器如何安装呢?不要紧,Linux有个命令叫做chroot,就是切换环境的意思,我们把

系统包含的所有文件都给复制回来了,然后再chroot到这个刚复制完的系统中,就可以使

用里面的命令,来安装启动管理器了。当然后面还附上了启动管理器的另一种备份和还原方

式。嘿嘿。

1 、 恢 复 前 准 备

拿一个新的硬盘,这个硬盘,至少在类型上要和原来的一样,也就是说以前的是SCSI

那么新的也是SCSI,这里又罗嗦了一把。硬盘的大小不同也不是很大的关系。我们需要对

这个新的硬盘进行分区,且分区的方式和备份前的是一模一样的。

要怎么才能一模一样?首先新硬盘插入的插槽,要和备份前的一样,这样才能保证系统

对硬盘的描述一样,另外还要根据之前备份的fstab文件对硬盘进行分区。这样就可以保证

和备份前是一致的了。备份文件所在的硬盘插入另一个插槽。

好,根据备份前的/etc/fstab文件所描述的内容来对硬盘进行分区,里面说明了原来

的硬盘上有三个分区,分别是/dev/hda1,/dev/hda2,/dev/hda3,我们也要建三个分区,

如下:

1、输入fdisk/dev/hda开始才第一个分区进行分区操作。

2、硬盘还是空的嘛,所以键入n来新建一个分区,按提示,建主分区,建入p;分区号,

键入1;扇区的开始,回车;分区的大小,键入+256M,表示是256M大小,对/

boot分区来说够用了。

3、以第2步的顺序来建立512M的交换分区,我这里写512M了,一般是内存的2倍。

4、以第2步的顺序来建立主分区,就使用剩下的所有空间吧。

5、在Command(mforhelp):后输入t来改变交换分区/dev/hda2的分区类型。键入

2,再键入82,如图:

6、最后键入p来查看是否分区正确,如果正确,就可以键入w来保存对硬盘的修改了。

7、创建文件系统,忘了吗?分完区后就应该创立文件系统了,下面的例子:

#mke2fs/dev/hda1

(对/boot建立ext2文件系统)

#mkswap/dev/hda2

#mke2fs-j/dev/hda3

(对/建立ext3文件系统)

好了,文件系统也创建结束了,准备工作完成。

2 、 挂 载 分 区

分区完成后,我们就开始挂载这两个硬盘上面的分区了,这回不同的是,因为硬盘是空的,

所以挂载点是需要创建的,下面是例子,再罗嗦一次,你需要按自己的实际情况来分区和挂

载,保证和备份前的一样就行了:

#mount/dev/hda3/mnt

#mkdir/mnt/boot

#mount/dev/hda1/mnt/boot

#mkdir/mnt/mnt

#mount/dev/hdb1/mnt/mnt

#swapon/dev/hda2

不要忘了哦,要先挂载根分区的。

以上命令的意思是,先挂载根分区,然后在这个根分区中建若干个目录作为其它分区的挂载

点,然后挂载硬盘的其它分区到这些目录,记得,一定要先挂载根分区,然后再把交换分区

用起来(Linuxswap),输入完成之后用

#df-k

和备份前的/etc/fstab对比一下是不是,如下,表明一致了。

#vi/mnt/mnt/full-backup-sas-09-October-2008.fstab.txt

你可以看到df-k里面显示的挂载点与fstab文件里面的挂载点只差mnt。等下我们chroot

到/mnt目录里面,/mnt就变成/,而/mnt/boot就变成/boot了。这就是chroot的作用,

将你的环境限制在某一个目录中!

3 、 执 行 恢 复 命 令

分区挂载完毕,我们就可以开始进行还原的操作了,简单,就是把文件给解压,复制回来就

OK了。

#cd/mnt

#tar-zxvpf./mnt/full-backup-sas-09-October-2008.tar.gz

上面的指令会从''full-backup-sas-09-October-2008.tar.gz''回存所有的档案,并且保

留原来文件的属性,这个很重要,不能忘了p参数!

4 、 安 装 启 动 管 理 器

前面说过了,要安装启动管理器就要进入刚刚复制的系统中,这要用到chroot命令,但是

在这之前,我们还要做的工作就是把fstab文件里面需要挂载的虚拟设备给挂载上,它们就

是devpts和proc,看看上面的图吧,它们就在最后两行。

#mount-tprocproc/mnt/proc

#mount-tdevptsdevpts/mnt/dev/pts

然后执行chroot命令

#chroot/mnt/bin/env-i\

HOME=/rootTERM="$TERM"PS1='\u:\w\$'\

PATH=/bin:/usr/bin:/sbin:/usr/sbin\

/bin/bash—login+h

好了,我们已经chroot进来了,那么就可以运行启动管理器的安装程序了,对于grub这

个启动管理器来说,只要键入如下命令就可以安装到mbr了(mbr)。

#grub-install—no-floppy/dev/hda

没有什么错误发生,那就重启机子吧,还原也完成了。这时重启机子应该就可以进入系统了,

和备份前的一样的。

大 功 告 成 !

额外的方法:

=========另一种备份还原启动管理器的方法(只对x86有效)==========

使用这个方法,就要了解mbr是什么,MBR是英文MasterBootRecord的缩写,中文意

为主引导记录。硬盘的0磁道的第一个扇区称为MBR,它的大小是512字节,而这个区域

可以分为两个部分。第一部分为pre-boot区(预启动区),占446字节;第二部分是Partition

table区(分区表),占66个字节,该区相当于一个小程序,作用是判断哪个分区被标记为

活动分区,然后去读取那个分区的启动区,并运行该区中的代码。

那说明什么?说明我们只要备份那446个字节就好了,还原的时候把它复制回去就行了。

哈哈,这个更简单,但是它在分区和文件系统之外,不能以copy的方式来备份。要使用

dd命令。

嗯,那就是说,如果以此种方式来备份,那么在备份的时候,要额外再加上一步

#ddif=/dev/hdaof=/mnt/full-backup-sas-`date'+%d-%B-%Y'`.mbr\

bs=446count=1

那么在还原的时候,前3步是一样的,最后一步安装启动管器员,我们就不用chroot命令

了,直接物理上把这446个字节给导回mbr里面就好了。

#ddif=/mnt/mnt/full-backup-sas-09-October-2008.mbr\

of=/dev/hdabs=446count=1

重启,至此大功告成。

  • 36
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
作为一名 Kubernetes 运维工程师,你需要掌握以下技能: 1. Linux 系统管理技能:作为一名运维工程师,你需要熟练掌握 Linux 操作系统,包括基本的命令行操作、文件系统管理、网络配置等。 2. Docker 容器技能:Kubernetes 是一个容器编排平台,因此你需要熟练掌握 Docker 容器技术,包括 Docker 容器的构建、镜像管理、运行和调试等。 3. Kubernetes 架构和组件:作为一名 Kubernetes 运维工程师,你需要深入理解 Kubernetes 的架构和各个组件的作用,包括 kube-apiserver、kube-controller-manager、kube-scheduler、kubelet、kube-proxy 等。 4. Kubernetes 集群搭建和管理:你需要熟练掌握 Kubernetes 集群的搭建和管理,包括集群的安装、配置、监控、扩展和升级等。 5. Kubernetes 应用部署和管理:你需要熟练掌握 Kubernetes 应用的部署和管理,包括应用的打包、发布、升级、回滚和扩容等。 6. 监控和日志管理:你需要掌握 Kubernetes 集群和应用的监控和日志管理技术,包括 Prometheus、Grafana、ELK 等工具的使用。 7. 自动化运维技能:你需要具备自动化运维技能,包括使用 Ansible、Puppet、SaltStack 等自动化工具进行集群管理和应用部署。 8. 网络和安全技能:你需要掌握 Kubernetes 集群的网络配置和安全管理技术,包括网络插件、网络策略、TLS 加密、RBAC 等。 以上是一些必备技能,当然还有其他的技能可以帮助你更好地完成 Kubernetes 运维工作。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

温柔-的-女汉子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值