小干貨:Linux 系統(tǒng)的備份恢復(fù)


作者:LeoLan's Blog
https://reurl.cc/gm5ZkQ
tar 命令
副本(本機(jī)備份整個系統(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)建備份時排除的目錄
mkdir?proc
mkdir?lost+found
mkdir?mnt
mkdir?sys
/proc 權(quán)限:文件所有者:root群組:root 所有者:讀取 執(zhí)行 群組:讀取 執(zhí)行 其它:讀取 執(zhí)行
/lost+found 權(quán)限:文件所有者:root群組:root 所有者:讀取 寫入 執(zhí)行 群組:讀取 執(zhí)行 其它:讀取 執(zhí)行
/mnt 權(quán)限:文件所有者:root群組:root 所有者:讀取 寫入 執(zhí)行 群組:讀取 執(zhí)行 其它:讀取 執(zhí)行
/sys 權(quán)限:文件所有者:root群組:root 所有者:讀取 寫入 執(zhí)行 群組:讀取 執(zhí)行 其它:讀取 執(zhí)行
恢復(fù)完成重啟以后,所以的事情都會和你備份的時候一模一樣。
鏡像(本機(jī)備份系統(tǒng),還原到新主機(jī)上)
1,檢查系統(tǒng)版本,在目標(biāo)機(jī)上安裝一樣版本的系統(tǒng)(最簡安裝即可),分區(qū)格式,類型也一樣(我沒試過不一樣的情況,不知道能否成功)
lsb_release?-a
uname?-a
df?-Th
free?-h
2,備份源系統(tǒng)
#?因為目標(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/[email protected]:/mnt
3,在目標(biāo)機(jī)上用ISO、LiveCD等啟動,掛載磁盤(一般會自動掛載到/media文件夾)
sudo?-s??
cd?/media/<對應(yīng)的uuid號>
#?備份重要配置文件/boot/gurb/gurb.cfg?/etc/fstab
記錄里面的UUID,
#?刪除重復(fù)文件
#?除了上面?zhèn)浞菹到y(tǒng)時排除的一些文件夾外,比如說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
#?這里注意千萬不要寫/目錄,會把現(xiàn)有的系統(tǒng)搞掛!!!應(yīng)該是掛載的目錄
tar?xvpfz?system_backup.tar.gz?-C?/mnt/1
cd?/mnt/1???????#此時你可以看到根目錄的結(jié)構(gòu),但是編輯fstab文件發(fā)現(xiàn)是現(xiàn)有系統(tǒng)的fstab
chroot ./???????#執(zhí)行chroot后會以./目錄為根目錄,這時編輯的文件就是真正的目標(biāo)源文件了。
還原后修改/etc/fstab里的UUID為剛剛備份的文件里面的信息,注意分區(qū)格式也要對應(yīng)。
修改/boot/gurb/gurb.cfg里的UUID為剛剛備份的文件里面的信息。
修改網(wǎng)卡、IP配置文件,以防無法分配IP。(如果是虛擬機(jī)記得添加網(wǎng)卡,配置中等性能的顯卡)
如果有依賴于原有平臺的服務(wù),如內(nèi)建NTP,Agent等監(jiān)控程序;關(guān)閉服務(wù),關(guān)閉開機(jī)自啟;
Ubuntu:在命令行輸入runleve可以查看當(dāng)前運行級別,一般默認(rèn)是2
查看/etc/rc2.d目錄中的S開頭的服務(wù)都是會開機(jī)自動運行的;里面是軟鏈接,想添加的話自己建一個鏈接文件就可以,S代表start,后面數(shù)字是啟動順序,刪除軟鏈接。同時刪除/etc/init.d/下對應(yīng)的腳本。
vim?/etc/init.d/rc.local
Centos:用systemctl
完成上述步驟后
exit??????#退出chroot
cd?~
umount?/mnt/1
#?一切完成后就可以重啟了,不出意外就正常啟動系統(tǒng)了(啟動后原來安裝系統(tǒng)時設(shè)置的賬戶等全部消失;賬戶和源主機(jī)一致)。
若開機(jī)Grub提示“boot?error?15?:Error?15?file?not?found”
解決方法:請檢查GRUB相關(guān)文件的內(nèi)核文件所在位置。通常與/boot分區(qū)有關(guān)。
若開機(jī)Grub提示“dracut:dono't?how?to?hand?root=f078”
解決方法:將root=UUID改成root=/dev/sdaX這種格式。
若開機(jī)系統(tǒng)提示/usr/libexec/gconf-sanity-check-2退出狀態(tài)256的解決
解決方法:chmod 777 /tmp
rsync命令
注意目標(biāo)分區(qū)的格式最好是NTFS、FAT、EXT之類的格式,避免遇到大于4G的文件無法備份的問題。
#最好有其他分區(qū)或外接存儲設(shè)備,掛載好,df -lh看掛載點。
#備份
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ū)要大,即使沒有使用的空間也會被原樣克隆下來,會比較慢。
#備份
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中
推薦閱讀:
M1 Mac 能安裝 Ubuntu 和 Linux 了 ??
漫畫 | 一臺Linux服務(wù)器最多能支撐多少個TCP連接?
5T技術(shù)資源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,單片機(jī),樹莓派,等等。在公眾號內(nèi)回復(fù)「1024」,即可免費獲取!!
評論
圖片
表情
