用tar备份和恢复Linux系统

简介: 其实备份系统平时看来可能用处不大,因为一般平时无论是数据库,还是应用,都会做自己的备份。实在系统坏了,也可以重装,重新配置就行。 有些系统可能用了很久,转了好几个人,里面的配置可能后来的人都搞不清楚了,重新配置需要花费很大精力。

环境:主要是针对redhat等系列系统

其实备份系统平时看来可能用处不大,因为一般平时无论是数据库,还是应用,都会做自己的备份。实在系统坏了,也可以重装,重新配置就行。

有些系统可能用了很久,转了好几个人,里面的配置可能后来的人都搞不清楚了,重新配置需要花费很大精力。这个时候系统的备份就显得非常重要了。

或者有时候一小心删除了某个目录也可以用备份恢复。
备份系统应有选择性的备份某些服务器系统,或某些重要的系统文件,不用全部服务器做备份。
可以专门准备一个服务器或空间,根据服务器IP创建目录,再根据日期来存放tar好的各服务器的备份文件。

备份:

一般LINUX分区至少分三个:
一个/boot分区
一个/根分区
一个/swap交换分区
我们以这个为基础来实施备份策略。

/boot分区安装系统后一般不会变动,所以安装完系统后就可以备份一份,以后如果有升级系统,可以再备份

1
#tar -zcpf /boot.tgz /boot

#备份整个根目录要排除一些动态的目录和一些不必要的目录
#备份根目录应等业务应用配置完成,运行一段时间稳定后再备份,这样以后恢复出来后也能马上使用。以后应用有重大修改,运行稳定后再备份,前面的备份就可以删除

1
#tar -zcpf /root.tgz --exclude=/mnt --exclude=/media --exclude=/proc --exlude=/sys --exclude=/boot --exclude=/root.tgz /

备份整个系统文件不仅是为了以后恢复系统方便,也可以用来直接克隆出一个系统来直接使用。

恢复:
前面备份还是很简单的,基本上就一两句命令。但恢复碰到的情况就稍微会有点复杂性。

恢复的时候可能会有好几种情况:
1、原系统还能正常运行
2、原系统彻底崩溃,进不了系统
3、磁盘损坏

1、原系统还能正常运行
这种情况下就相对简单了。
如果是误删或者是想恢复某个目录,直接在运行中的系统中用tar还原即可,就是这么任性。

1
#tar -zxpf /root.tgz -C / etc

#-C 指定还原到/根目录中,后面接上想恢复的etc目录

2、原系统彻底崩溃,进不了系统
这种情况要么进单用户模式,要么就只能用光盘进rescue救援模式下还原了。
如果还能进单用户模式,进入单用户模式下,直接恢复

1
2
3
bash-4.1#tar -zxpf /root.tgz -C /
bash-4.1#reboot
#可以有针对性的还原某个文件目录,如果不知道坏在哪里,直接还原整个根目录

如果连单用户模式都进不了,那么只能用光盘进rescue救援模式下还原了。
光盘启动,选择rescue模式:
启动shell:

1
2
3
4
5
6
7
bash-4.1# chroot /mnt/sysimage
sh-3.2#tar -zxpf boot.tgz -C /
sh-3.2#tar -zxpf root.tgz -C /
sh-3.2#grub-install /dev/sda
#这步看具体情况要不要执行,如果连单用户模式也进入不了,可能是引导出了问题,就可以选择重新安装一下引导
sh-3.2# exit
bash-4.1#reboot

3、磁盘损坏
这种情况下,就相当于连rescue模式下,都没有办法chroot原来的系统了,可以看作原来的系统文件完全丢失了。
这种情况下相当于是用原来的tar备份克隆出来一个系统了。因为已经没办法在原先的系统上进行还原了。

其实前面讲这么多,最主要就是想讲这种方法,因为只有这种方法有点技术含量。
这种克隆恢复需要注意好几个地方,就没有像前面几种方法那么简单了。当然,一旦操作熟练了,其实也不难。

 

A:用光盘启动到rescue模式下
要启用网络,方便后面下载备份到本地
进入Skip模式
e3a51f1848e66b32e5c4a6c838e7c555437992ad

进入shell start shell

1a5a6bc3c8c089a51473cf27adea05b5977bad38

B:根据原来的分区情况进行分区

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/boot /dev/sda1 200M
/ /dev/sda2 10G
swap /dev/sda3 2G
 
bash-4.1#fdisk /dev/sda
n
p
1
1
+200M
 
n
p
2
default
+20G
 
n
p
3
default
2G
 
t 设置swap分区格式
3
82
 
a 设置boot分区为启动分区
1
 
w

C:创建目录并挂载分区

1
2
3
4
5
6
7
8
bash-4.1#mkfs.ext4 /dev/sda1
bash-4.1#mkfs.ext4 /dev/sda2
 
bash-4.1# mkdir /mnt/root
bash-4.1# mkdir /mnt/boot1
 
bash-4.1#mount /dev/sda2 /mnt/root
bash-4.1#mount /dev/sda1 /mnt/boot1

D:下载备份并还原root.tgz/boot.tgz:

1
2
3
4
5
bash-4.1#tar zxpf root.tgz -C /mnt/root
bash-4.1#tar zxpf boot.tgz -C /mnt/boot1
 
卸载/boot分区, chroot 后在挂载
bash-4.1#umount /dev/sda2

E:切换到chroot

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
bash-4.1# chroot /mnt/root
 
注意:切换 chroot 后,前面的引导前缀是会变的。
原先前缀是bash-4.1#
切换后是sh-4.1#
 
创建没有备份的一些系统文件
sh-4.1# mkdir /boot
sh-4.1# mkdir /proc
sh-4.1# mkdir /mnt
sh-4.1# mkdir /media
sh-4.1# mkdir /sys
 
安装启动信息
sh-4.1#mount /dev/sda2 /boot
sh-4.1#grub-install /dev/sda

F:修改uuid
这步也是最重要的一步,也是需要注意的一步,也是最后一步
原来备份的引导盘和硬盘uuid跟新的是不一样的,用原先备份的引导文件去开机,是没办法成功的。
这里需要查看新的硬盘的uuid,再修改几个文件,替换掉原来的uuid即可

1
2
3
4
5
6
7
8
9
10
11
12
sh-4.1#blkid /dev/sda1
sh-4.1#blkid /dev/sda2
sh-4.1#blkid /dev/sda3
 
sh-4.1#vim /boot/grub/grub.conf
root=uuid=修改成上面查出来的uuid
 
sh-4.1#vim /etc/fstab
uuid=修改成上面查出来的uuid
 
sh-4.1## exit
bash-4.1#reboot

完成

相关文章
|
2月前
|
Ubuntu Linux Anolis
Linux系统禁用swap
本文介绍了在新版本Linux系统(如Ubuntu 20.04+、CentOS Stream、openEuler等)中禁用swap的两种方法。传统通过注释/etc/fstab中swap行的方式已失效,现需使用systemd管理swap.target服务或在/etc/fstab中添加noauto参数实现禁用。方法1通过屏蔽swap.target适用于新版系统,方法2通过修改fstab挂载选项更通用,兼容所有系统。
218 3
Linux系统禁用swap
|
2月前
|
Linux
Linux系统修改网卡名为eth0、eth1
在Linux系统中,可通过修改GRUB配置和创建Udev规则或使用systemd链接文件,将网卡名改为`eth0`、`eth1`等传统命名方式,适用于多种发行版并支持多网卡配置。
305 3
|
Ubuntu Linux 网络安全
Linux系统初始化脚本
一款支持Rocky、CentOS、Ubuntu、Debian、openEuler等主流Linux发行版的系统初始化Shell脚本,涵盖网络配置、主机名设置、镜像源更换、安全加固等多项功能,适配单/双网卡环境,支持UEFI引导,提供多版本下载与持续更新。
288 0
Linux系统初始化脚本
|
3月前
|
运维 Linux 开发者
Linux系统中使用Python的ping3库进行网络连通性测试
以上步骤展示了如何利用 Python 的 `ping3` 库来检测网络连通性,并且提供了基本错误处理方法以确保程序能够优雅地处理各种意外情形。通过简洁明快、易读易懂、实操性强等特点使得该方法非常适合开发者或系统管理员快速集成至自动化工具链之内进行日常运维任务之需求满足。
231 18
|
2月前
|
安全 Linux Shell
Linux系统提权方式全面总结:从基础到高级攻防技术
本文全面总结Linux系统提权技术,涵盖权限体系、配置错误、漏洞利用、密码攻击等方法,帮助安全研究人员掌握攻防技术,提升系统防护能力。
278 1
|
2月前
|
监控 安全 Linux
Linux系统提权之计划任务(Cron Jobs)提权
在Linux系统中,计划任务(Cron Jobs)常用于定时执行脚本或命令。若配置不当,攻击者可利用其提权至root权限。常见漏洞包括可写的Cron脚本、目录、通配符注入及PATH变量劫持。攻击者通过修改脚本、创建恶意任务或注入命令实现提权。系统管理员应遵循最小权限原则、使用绝对路径、避免通配符、设置安全PATH并定期审计,以防范此类攻击。
991 1
|
3月前
|
缓存 监控 Linux
Linux系统清理缓存(buff/cache)的有效方法。
总结而言,在大多数情形下你不必担心Linux中buffer与cache占用过多内存在影响到其他程序运行;因为当程序请求更多内存在没有足够可用资源时,Linux会自行调整其占有量。只有当你明确知道当前环境与需求并希望立即回收这部分资源给即将运行重负载任务之前才考虑上述方法去主动干预。
1548 10
|
3月前
|
安全 Linux 数据安全/隐私保护
为Linux系统的普通账户授予sudo访问权限的过程
完成上述步骤后,你提升的用户就能够使用 `sudo`命令来执行管理员级别的操作,而无需切换到root用户。这是一种更加安全和便捷的权限管理方式,因为它能够留下完整的权限使用记录,并以最小权限的方式工作。需要注意的是,随意授予sudo权限可能会使系统暴露在风险之中,尤其是在用户不了解其所执行命令可能带来的后果的情况下。所以在配置sudo权限时,必须谨慎行事。
562 0
|
3月前
|
Ubuntu Linux 开发者
国产 Linux 发行版再添新成员,CutefishOS 系统简单体验
当然,系统生态构建过程并不简单,不过为了帮助国产操作系统优化生态圈,部分企业也开始用国产操作系统替代 Windows,我们相信肯定会有越来越多的精品软件登录 Linux 平台。
288 0
|
3月前
|
Ubuntu 安全 Linux
Linux系统入门指南:从零开始学习Linux
Shell脚本是一种强大的自动化工具,可以帮助您简化重复的任务或创建复杂的脚本程序。了解Shell脚本的基本语法和常用命令,以及编写和运行Shell脚本的步骤,将使您更高效地处理日常任务。
452 0
下一篇
oss云网关配置