Linux备份还原双系统设计与实现(二)

    在【Linux备份还原双系统设计与实现<一>】里面,实现了在开机时按住Shift键就可进行系统备份与还原,但在实际项目应用中,我们需要在WEB管理平台中,能同样实现系统备份与还原操作。
 
1、基本流程
    1)用户登录WEB管理平台。
    2)选择终端设备,点击【备份】或【还原】操作。
    3)服务器通知播放器需要进行【备份】/【还原】操作。
    4)终端设备接收命令后,替换对应的grub配置文件,这个配置文件默认进入备份】/【还原】的菜单,而不是原来的正常工作模式,并自动重启。
    5)终端设备进入操作系统A中,先替换grub配置文件为正常的配置文件,再对操作系统B进行备份还原操作,完成后,自动重启。
 
2、具体实现
2.1 修改操作系统A的grub菜单配置
    在原来的grub菜单上基础上创建2个不同的grub配置文件,分别为/boot/grub/grub_backup_sys.cfg:【备份操作系统】,/boot/grub/grub_restore_sys.cfg:【还原操作系统】。
    boot/grub/grub_backup_sys.cfg配置文件主要内容:
#设置默认引导菜单0,也就是备份操作系统
set default = "0"
menuentry 'Backup System' --class ubuntu --class gnu -linux --class gnu --class os {
    recordfail
    gfxmode $linux_gfx_mode
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root = '(hd0,msdos1)'
 
    linux     /boot /vmlinuz - 3. 2. 0 - 23 -generic -pae root = /dev /sda1 ro   quiet splash backupSys $vt_handoff
    initrd     /boot /initrd.img - 3. 2. 0 - 23 -generic -pae
}
 
然后复制一份原来的grub配置文件为grub_normal.cfg,用于备份还原操作完成后,再恢复回来。
sudo cp   /boot /grub /grub.cfg /boot /grub /grub_normal.cfg
 
在原来的/etc/init.d/xds.rc脚本中,有以下语句:
sudo chmod +w /boot /grub /grub.cfg
sudo cp /boot /grub /grub_normal.cfg /boot /grub /grub.cfg
sudo chmod -w /boot /grub /grub.cfg
这三行语句就是进入系统A后,马上把grub配置菜单替换为正常的菜单,重启后就进入正常工作模式。
 
2.2 编辑操作系统B的运行脚本
    以还原操作系统的脚本backupOs.sh为例,先挂载分区1,然后替换grub.cfg,再重启,如下:
#!/bin/bash
sudo mount /dev /sda1 /mnt
sudo chmod +w /mnt /boot /grub /grub.cfg
sudo cp /mnt /boot /grub /grub_backup_sys.cfg /mnt /boot /grub /grub.cfg
sudo chmod -w /mnt /boot /grub /grub.cfg
sudo umount /mnt
sudo reboot
 
2.3 调用
    以QT环境为例,如下:
void DsCommon::backOS()
{
    QString shFileName = "backupOs.sh";
    QProcess : :execute( "/bin/chmod +x " + shFileName);
    QProcess : :startDetached( "/bin/sh " + shFileName + " &");
}
 
    终端设备在收到服务器备份的命令,就调用上面的backOs()方法,重启后,就进行备份操作。
    终端设备与服务器的通信就是普通的http或者socket通信,在此略过。
 
    至此,用户能通过WEB界面管理终端设置的备份还原实现完成。
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值