常用的Linux 系統備份、恢復命令

常用的Linux 系統備份、恢復命令

刪庫跑路的事常常聽說,不過,這只能是個調侃的話題,真正的工作中可不能這么干,否則,庫是刪了,路怕是跑不了了。

所以,備份很重要!!!!!

tar 命令

副本(本機備份整個系統,以后還原還是還原到本機)

注意根目錄下要有充足的可用空間用于備份。

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   #?恢復系統 cd?/ #上傳文件到根目錄下 tar?xvpfz?system_backup.tar.gz?-C?/ 或 tar?xvpfj?system_backup.tar.bz2?-C?/  #創建備份時排除的目錄 mkdir?proc mkdir?lost+found mkdir?mnt mkdir?sys
  • /proc 權限:文件所有者:root群組:root 所有者:讀取 執行 群組:讀取 執行 其它:讀取 執行

  • /lost+found 權限:文件所有者:root群組:root 所有者:讀取 寫入 執行 群組:讀取 執行 其它:讀取 執行

  • /mnt 權限:文件所有者:root群組:root 所有者:讀取 寫入 執行 群組:讀取 執行 其它:讀取 執行

  • /sys 權限:文件所有者:root群組:root 所有者:讀取 寫入 執行 群組:讀取 執行 其它:讀取 執行

  • 搜索公眾號linux中文社區后臺回復“私房菜”,獲取一份驚喜禮包。

恢復完成重啟以后,所以的事情都會和你備份的時候一模一樣。

鏡像(本機備份系統,還原到新主機上)

1,檢查系統版本,在目標機上安裝一樣版本的系統(最簡安裝即可),分區格式,類型也一樣(我沒試過不一樣的情況,不知道能否成功)

lsb_release?-a uname?-a df?-Th free?-h

2,備份源系統

#?因為目標機和源主機硬件配置不同,所以排除dev,tmp;再適當增加你要排除的文件,如:--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  #?上傳到目標主機 scp?/mnt/system_backup.tar.gz?root@192.168.0.166:/mnt

3,在目標機上用ISO、LiveCD等啟動,掛載磁盤(一般會自動掛載到/media文件夾)

sudo?-s?? cd?/media/ #?備份重要配置文件/boot/gurb/gurb.cfg?/etc/fstab 記錄里面的UUID,  #?刪除重復文件 #?除了上面備份系統時排除的一些文件夾外,比如說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 #?這里注意千萬不要寫/目錄,會把現有的系統搞掛!!!應該是掛載的目錄 tar?xvpfz?system_backup.tar.gz?-C?/mnt/1 cd?/mnt/1???????#此時你可以看到根目錄的結構,但是編輯fstab文件發現是現有系統的fstab chroot?./???????#執行chroot后會以./目錄為根目錄,這時編輯的文件就是真正的目標源文件了。

還原后修改/etc/fstab里的UUID為剛剛備份的文件里面的信息,注意分區格式也要對應。

修改/boot/gurb/gurb.cfg里的UUID為剛剛備份的文件里面的信息。修改網卡、IP配置文件,以防無法分配IP。(如果是虛擬機記得添加網卡,配置中等性能的顯卡)

如果有依賴于原有平臺的服務,如內建NTP,Agent等監控程序;關閉服務,關閉開機自啟;

ubuntu:在命令行輸入runleve可以查看當前運行級別,一般默認是2

查看/etc/rc2.d目錄中的S開頭的服務都是會開機自動運行的;里面是軟鏈接,想添加的話自己建一個鏈接文件就可以,S代表start,后面數字是啟動順序,刪除軟鏈接。同時刪除/etc/init.d/下對應的腳本。

vim?/etc/init.d/rc.local Centos:用systemctl

完成上述步驟后

exit??????#退出chroot cd?~ umount?/mnt/1  #?一切完成后就可以重啟了,不出意外就正常啟動系統了(啟動后原來安裝系統時設置的賬戶等全部消失;賬戶和源主機一致)。 若開機Grub提示“boot?error?15?:Error?15?file?not?found” 解決方法:請檢查GRUB相關文件的內核文件所在位置。通常與/boot分區有關。 ? 若開機Grub提示“dracut:dono't?how?to?hand?root=f078” 解決方法:將root=UUID改成root=/dev/sdaX這種格式。 ? 若開機系統提示/usr/libexec/gconf-sanity-check-2退出狀態256的解決 解決方法:chmod?777?/tmp

rsync命令

注意目標分區的格式最好是NTFS、FAT、EXT之類的格式,避免遇到大于4G的文件無法備份的問題。

#最好有其他分區或外接存儲設備,掛載好,df?-lh看掛載點。 #備份 rsync?-Pa?/?/media/usb/backup_20170410?--exclude=/media/*?--exclude=/sys/*?--exclude=/proc/*?--exclude=/mnt/*?--exclude=/tmp/*  #恢復  rsync?-Pa?/media/usb/backup_20170410?/

dd命令

dd命令屬于扇區克隆,目標分區要比備份分區要大,即使沒有使用的空間也會被原樣克隆下來,會比較慢。

#備份 df?-h???#查看系統所在分區 dd?if=/dev/sda1?of=/dev/sdb3?????#備份sda1到sdb3中  #恢復 dd?if=/dev/sdb3?of=/dev/sda1?????#恢復sdb3到sdb1中

? 版權聲明
THE END
喜歡就支持一下吧
點贊11 分享