如何把VPS上的整個系統備份下來?
我的VPS是centos5.5的系統,裡面裝了mysql、nginx等等各種服務。我能否把VPS的整個系統都備份下來?這樣萬一伺服器有問題,我再整個恢復上去。
先直接回答你的問題:
rsync -aAXv /* /path/to/backup/folder --exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/lost+found}
來自 Full System Backup with rsync
然後就是恢復的時候你會發現mysql起不來了,跑來大罵我坑爹。
--所以我真正的回答是這樣的:
首先搞清楚到底哪些服務是在跑的,搞清這些服務的執行文件, 數據文件,配置文件,依賴,佔用。
這樣才能進行備份:
針對執行文件, [檢查依賴+安裝]腳本,這個時候會發現有包管理是多麼美妙。針對數據文件, 這是最主要的部分, 要保證備份的完整一致可用,你得根據服務寫出針對的腳本,比如mysql就得用到mysqldump或者xtrabackup。
針對配置文件, 這是最有意思的部分, 把每個服務的配置文件都變成模板, 然後抽取變數,放到一個總的配置文件裡面。然後有個腳本讀取這個配置文件之母,調用一些方法/腳本生成一套所有服務的配置文件,還帶拷貝到指定路徑。
所有的腳本和模板和配置都要有版本控制。
然後完了么? 沒完, 得寫一個恢復腳本, 裝個虛擬機,線上弄個數據文件的備份, 加上模板,改改總配置, 指定幾個參數看能不能完整恢復出一個能用的環境。
這樣才基本上算備份了「整個系統」, 還沒提監控備份的成功失敗,備份的安全問題。--
為了未來不折騰, 建議為每個服務抽象出一套運維操作腳本/方法, 涵蓋安裝更新回滾卸載清理備份啟動停止重載warmup生成配置增刪改自定義等等, 好吧是不是看起來像面向對象了? 誰說運維不是死程哼哼
--以下是我的腦補看到這裡估計很多人要哭了:「大哥我只是想備份幾個配置,至於整這麼一大串么?!」:運維本來就是這麼個系(keng)統(die)的工作, 網上隨便找個文檔編譯安裝手改配置起服務這種赤腳醫生的行為也就是一時爽.....使用 ssh 將整個 /dev/sda dd 到本地一個 *.img 中不知道符不符合樓主的要求
看到上面一個建議使用dd的方法不是很妥,整個硬碟保存的話浪費空間時間,難道你每天都要備份一個鏡像?而且導出的鏡像的有兼容性問題,你現在是centos,萬一要恢復到debian不就哭了?保存核心數據即可,如mysql定期dump出來,然後下載到本地或者其他地方,業務不大的話估計幾M的壓縮包,下載也快;nginx這類只需要備份下配置文件即可;伺服器掛了的話,裝個nginx修改下配置,mysql導入數據即可,不論將來換了系統版本,軟體版本都可以兼容。
如果你使用是雲服務,甚至可以不用自己擔心容災的問題。
你現在是CentOS 5.5下次是6.0你的鏡像能用么?
在下次是一台Debian你的鏡像能用么?再下次還是一台裸機硬體不一樣,你的鏡像能用么?再下次硬體一樣,分區不同/下面分了好幾個區你的鏡像能用么?所以,備份配置就夠了。生產環境不會這麼做的。別拿windows的習慣過來。linux下沒必要搞ghost
聽題主說VPS,那麼假設伺服器是使用了某服務商的基於虛擬機的虛擬伺服器,而不是自行安裝的硬體伺服器系統。
這時要看你的服務商和你的伺服器設置方法了。如果是amazon aws的架構就非常簡單,aws直接提供了img克隆的功能,停機clone一個映像就好了。
而象Linode這樣的架構,則有兩種方法:一種是多花點錢直接克隆到另外一台虛擬機上,一種是安裝系統時就設置一個容量等於root的備份盤,需要備份的時候clone root為備份盤即可。這種方法沒有額外的費用,只是佔用了一部分空間。如果需要恢復系統時,在啟動配置里將備份盤改為root重啟就可以了。
要是你的服務商不支持虛擬盤的克隆,這種想法可能就不能實現了。按 @Cloud 用ssh固然能備份下來,但是出現故障時又如何在線恢復呢?待高手指點。
最後免責聲明,系統克隆只能作為數據備份的補充手段,本人不對按以上方法操作造成的數據丟失負責。而題主說的備份要求和方法,其實經常被IT公司拿來做伺服器的快速安裝、設置。這根據具體架構就有更多的處理方式了。可以試試虛擬機,比如openvz之類的.直接整個目錄tar一下就可以了
這個如果是linode,vultr 等國外的VPS有備份主機功能,換個IP,買個空間,直接導入即可!
使用Clonezilla整個磁碟遷移系統到虛擬機Linux環境http://www.4u4v.net/shi-yong-clonezilla-zheng-ge-ci-pan-qian-yi-xi-tong-dao-xu-ni-ji-linux-huan-jing.html
直接克隆系統,把文件複製出來,或者考慮raid 1
一般不用備份整個系統,備份網站和資料庫即可了。一般vps運營商也有收費的備份服務可以備份整個系統的。
linode嗎?$5/mon 開個backup雙重保險,我就是這麼乾的。配合snaphost基本無礙啊,本地都沒這麼保險啊。
這個只能看看面板有沒有這個功能了,沒有的話也實現不了。
推薦閱讀:
※VPS上安裝centos7合適么?怎麼配置優化lnmp環境?
※如何將centos桌面版下的網卡驅動拷到server版下?
※為什麼運維(SA)普遍反對使用 CentOS 7 ?
※CentOS 為何加入紅帽公司,會有何影響?
※為什麼很多公司不用紅帽,而用centos呢?