Linux 系統(tǒng)的備份、恢復(fù)
刪庫(kù)跑路的事常常聽(tīng)說(shuō),不過(guò),這只能是個(gè)調(diào)侃的話(huà)題,真正的工作中可不能這么干,否則,庫(kù)是刪了,路怕是跑不了了。
所以,備份很重要!!!!!
tar 命令
副本(本機(jī)備份整個(gè)系統(tǒng),以后還原還是還原到本機(jī))
注意根目錄下要有充足的可用空間用于備份。
- cd /
 - #tar.gz格式
 - tar cvpzf system_backup.tar.gz / --exclude=/proc --exclude=/lost+found --exclude=/system_backup.tar.gz --exclude=/mnt --exclude=/sys
 - #tar.bz2格式
 - tar cvpjf system_backup.tar.bz2 / --exclude=/proc --exclude=/lost+found --exclude=/system_backup.tar.bz2 --exclude=/mnt --exclude=/sys
 - # 恢復(fù)系統(tǒng)
 - cd /
 - #上傳文件到根目錄下
 - tar xvpfz system_backup.tar.gz -C /
 - 或
 - tar xvpfj system_backup.tar.bz2 -C /
 - #創(chuàng)建備份時(shí)排除的目錄
 - mkdir proc
 - mkdir lost+found
 - mkdir mnt
 - mkdir sys
 
- /proc 權(quán)限:文件所有者:root群組:root 所有者:讀取 執(zhí)行 群組:讀取 執(zhí)行 其它:讀取 執(zhí)行
 - /lost+found 權(quán)限:文件所有者:root群組:root 所有者:讀取 寫(xiě)入 執(zhí)行 群組:讀取 執(zhí)行 其它:讀取 執(zhí)行
 - /mnt 權(quán)限:文件所有者:root群組:root 所有者:讀取 寫(xiě)入 執(zhí)行 群組:讀取 執(zhí)行 其它:讀取 執(zhí)行
 - /sys 權(quán)限:文件所有者:root群組:root 所有者:讀取 寫(xiě)入 執(zhí)行 群組:讀取 執(zhí)行 其它:讀取 執(zhí)行
 
恢復(fù)完成重啟以后,所以的事情都會(huì)和你備份的時(shí)候一模一樣。
鏡像(本機(jī)備份系統(tǒng),還原到新主機(jī)上)
1.檢查系統(tǒng)版本,在目標(biāo)機(jī)上安裝一樣版本的系統(tǒng)(最簡(jiǎn)安裝即可),分區(qū)格式,類(lèi)型也一樣(我沒(méi)試過(guò)不一樣的情況,不知道能否成功)
- lsb_release -a
 - uname -a
 - df -Th
 - free -h
 
2.備份源系統(tǒng)
- # 因?yàn)槟繕?biāo)機(jī)和源主機(jī)硬件配置不同,所以排除dev,tmp;再適當(dāng)增加你要排除的文件,如:--exclude=/root/*.bz2
 - # 這里再mnt下有充足空間,所以保存到mnt下。
 - cd /
 - tar cvpzf /mnt/system_backup.tar.gz / --exclude=/mnt/system_backup.tar.gz \
 - --exclude=/proc --exclude=/lost+found --exclude=/mnt --exclude=/sys --exclude=/dev \
 - --exclude=/tmp --exclude=/media
 - # 上傳到目標(biāo)主機(jī)
 - scp /mnt/system_backup.tar.gz root@192.168.0.166:/mnt
 
3,在目標(biāo)機(jī)上用ISO、LiveCD等啟動(dòng),掛載磁盤(pán)(一般會(huì)自動(dòng)掛載到/media文件夾)
- sudo -s
 - cd /media/<對(duì)應(yīng)的uuid號(hào)>
 - # 備份重要配置文件/boot/gurb/gurb.cfg /etc/fstab
 - 記錄里面的UUID,
 - # 刪除重復(fù)文件
 - # 除了上面?zhèn)浞菹到y(tǒng)時(shí)排除的一些文件夾外,比如說(shuō)dev mnt media sys這些文件夾,其他全部刪除。
 - rm -rf root home usr lib lib64 etc var bin sbin opt boot run selinux vmlinuz initrd.img
 - # 還原備份
 - mount /dev/vda1 /mnt/1
 - # 這里注意千萬(wàn)不要寫(xiě)/目錄,會(huì)把現(xiàn)有的系統(tǒng)搞掛?。。?yīng)該是掛載的目錄
 - tar xvpfz system_backup.tar.gz -C /mnt/1
 - cd /mnt/1 #此時(shí)你可以看到根目錄的結(jié)構(gòu),但是編輯fstab文件發(fā)現(xiàn)是現(xiàn)有系統(tǒng)的fstab
 - chroot ./ #執(zhí)行chroot后會(huì)以./目錄為根目錄,這時(shí)編輯的文件就是真正的目標(biāo)源文件了。
 
還原后修改/etc/fstab里的UUID為剛剛備份的文件里面的信息,注意分區(qū)格式也要對(duì)應(yīng)。修改/boot/gurb/gurb.cfg里的UUID為剛剛備份的文件里面的信息。修改網(wǎng)卡、IP配置文件,以防無(wú)法分配IP。(如果是虛擬機(jī)記得添加網(wǎng)卡,配置中等性能的顯卡)如果有依賴(lài)于原有平臺(tái)的服務(wù),如內(nèi)建NTP,Agent等監(jiān)控程序;關(guān)閉服務(wù),關(guān)閉開(kāi)機(jī)自啟;Ubuntu:在命令行輸入runleve可以查看當(dāng)前運(yùn)行級(jí)別,一般默認(rèn)是2查看/etc/rc2.d目錄中的S開(kāi)頭的服務(wù)都是會(huì)開(kāi)機(jī)自動(dòng)運(yùn)行的;里面是軟鏈接,想添加的話(huà)自己建一個(gè)鏈接文件就可以,S代表start,后面數(shù)字是啟動(dòng)順序,刪除軟鏈接。同時(shí)刪除/etc/init.d/下對(duì)應(yīng)的腳本。
- vim /etc/init.d/rc.local
 
Centos:用systemctl
完成上述步驟后
- exit #退出chroot
 - cd ~
 - umount /mnt/1
 - # 一切完成后就可以重啟了,不出意外就正常啟動(dòng)系統(tǒng)了(啟動(dòng)后原來(lái)安裝系統(tǒng)時(shí)設(shè)置的賬戶(hù)等全部消失;賬戶(hù)和源主機(jī)一致)。
 
若開(kāi)機(jī)Grub提示“boot error 15 :Error 15 file not found”解決方法:請(qǐng)檢查GRUB相關(guān)文件的內(nèi)核文件所在位置。通常與/boot分區(qū)有關(guān)。 若開(kāi)機(jī)Grub提示“dracut:dono't how to hand root=f078”解決方法:將root=UUID改成root=/dev/sdaX這種格式。
若開(kāi)機(jī)系統(tǒng)提示/usr/libexec/gconf-sanity-check-2退出狀態(tài)256的解決
解決方法:chmod 777 /tmp
rsync命令
注意目標(biāo)分區(qū)的格式最好是NTFS、FAT、EXT之類(lèi)的格式,避免遇到大于4G的文件無(wú)法備份的問(wèn)題。
- #最好有其他分區(qū)或外接存儲(chǔ)設(shè)備,掛載好,df -lh看掛載點(diǎn)。
 - #備份
 - rsync -Pa / /media/usb/backup_20170410 --exclude=/media/* --exclude=/sys/* --exclude=/proc/* --exclude=/mnt/* --exclude=/tmp/*
 - #恢復(fù)
 - rsync -Pa /media/usb/backup_20170410 /
 
dd命令
dd命令屬于扇區(qū)克隆,目標(biāo)分區(qū)要比備份分區(qū)要大,即使沒(méi)有使用的空間也會(huì)被原樣克隆下來(lái),會(huì)比較慢。
- #備份
 - df -h #查看系統(tǒng)所在分區(qū)
 - dd if=/dev/sda1 of=/dev/sdb3 #備份sda1到sdb3中
 - #恢復(fù)
 - dd if=/dev/sdb3 of=/dev/sda1 #恢復(fù)sdb3到sdb1中
 















 
 
 


 
 
 
 