今天我们介绍另外一种在线备份Linux *** 作系统的方法:通过tar拷贝 *** 作系统分区数据,完成 *** 作系统备份。
在继续往下面读之前,为了更好理解,请先阅读这篇文章:《Linux基础知识之Linux系统各个目录的作用》,这篇文章介绍了Linux的基础目录及其作用,下面的备份会说到这些目录。
一句话说明此方案原理:备份/boot(含grub),备份分区表,备份LVM卷信息(如果有)备份系统文件。
下面具体介绍:
1. 分区规划
在实施此方案之前,需要规划好分区,通过tar备份分区之前,先要规划好分区。
2. 备份数据定义
备份的目录和分区为:
/boot boot引导分区
/etc 系统核心配置文件
/var 系统运行目录
/home 用户主目录
/root root用户主目录
/opt 用户程序文件
/bin 系统可执行文件
/sbin 系统可执行文件
/usr 程序安装目录
无需备份的目录:
这些目录用途参考《Linux基础知识之Linux系统各个目录的作用》这个文章,这里就不重复介绍了。
/proc
/sys
/dev
/media
/swap
3. 备份
分区和目录都定义好了之后,开始执行备份,步骤为:
1)备份分区表。执行fdisk -l >/var/partition.cfg
2)备份LVM卷元数据。 vgcfgbackup -v ,命令会将卷信息导出到文件。
3)备份/boot分区。
4)使用tar命令,备份上面的所有分区和数据。
4. 恢复
备份完成后要恢复备份的数据,需要重新引导 *** 作系统。
你可以通过光盘引导 *** 作系统进入单用户模式,或者使用内存 *** 作系统进入单用户模式。使用光盘相对简单一些。
1)进入单用户模式后,将备份的数据挂接到 *** 作系统。
2)根据备份出来的分区表,创建分区。
3)解压/boot分区,通过grub-install命令,恢复grub。
4)恢复LVM卷。vgcgfrestore命令。
5)解压各个目录和分区。
5. 性能影响
通过tar命令压缩的方式备份 *** 作系统数据,对 *** 作系统运行还是有一定性能影响的。这个要根据数据大小而定,需要在实际环境测试。
本人每次对 *** 作系统更新后都做一次系统备份,我的做法是:1、在保存备份文件的目录 xxx 下建立一个文件 backup.sh,其内容是:
tar -zcf bin.tar.gz /bin
tar -zcf boot.tar.gz /boot
tar -zcf dev.tar.gz /dev
tar -zcf etc.tar.gz /etc
tar -zcf lib32.tar.gz /lib32
tar -zcf lib64.tar.gz /lib64
tar -zcf lib.tar.gz /lib
tar -zcf opt.tar.gz /opt
tar -zcf sbin.tar.gz /sbin
tar -zcf selinux.tar.gz /selinux
tar -zcf srv.tar.gz /srv
tar -zcf var.tar.gz /var
tar -zcf usr.tar.gz /usr
2、在需要备份的时候进入到保存备份内容的目录执行一次命令: sh backup.sh
3、在保存备份文件的目录 xxx 下建立一个叫 restore.sh 的文件,其内容如下:
tar -zxf /mnt/xxx/bin.tar.gz
tar -zxf /mnt/xxx/boot.tar.gz
tar -zxf /mnt/xxx/dev.tar.gz
tar -zxf /mnt/xxx/etc.tar.gz
tar -zxf /mnt/xxx/lib32.tar.gz
tar -zxf /mnt/xxx/lib64.tar.gz
tar -zxf /mnt/xxx/lib.tar.gz
tar -zxf /mnt/xxx/opt.tar.gz
tar -zxf /mnt/xxx/sbin.tar.gz
tar -zxf /mnt/xxx/selinux.tar.gz
tar -zxf /mnt/xxx/srv.tar.gz
tar -zxf /mnt/xxx/var.tar.gz
tar -zxf /mnt/xxx/usr.tar.gz
4、如果需要系统恢复,我就用光盘启动,mount 原来的根目录为 yyy,接着 mount 保存备份文件的目录为 xxx,接着进入到 /mnt/yyy,并在此下达命令: sh /mnt/xxx/restore.sh
说明:
(1)、备份和恢复需要1个多小时,这个时间根据你电脑的CPU速度和硬盘转速会有所不同。
(2)、上面备份与恢复没有顾及 /home 目录和 /root 目录,因为我的系统主要是给学生做练习用的,那两个目录的内容没有意义。在实际工作中,可能这两个目录才是最重要的,你可以模仿着别的目录添加到 backup.sh 和 restore.sh 文件中去,甚至别的目录都不备份(以便节约备份时间)就备份这两个目录。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)